{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "train = pd.read_csv('WADI_14days_new.csv')\n",
    "test = pd.read_csv('WADI_attackdataLABLE.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(784571, 130)\n",
      "(172803, 131)\n"
     ]
    }
   ],
   "source": [
    "print(train.shape)\n",
    "print(test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(784571, 126)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train = train.dropna(axis=1, how='all')\n",
    "train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(172803, 127)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test = test.dropna(axis=1, how='all')\n",
    "test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Row', 'Date', 'Time', '1_AIT_001_PV', '1_AIT_002_PV', '1_AIT_003_PV',\n",
       "       '1_AIT_004_PV', '1_AIT_005_PV', '1_FIT_001_PV', '1_LS_001_AL',\n",
       "       ...\n",
       "       '3_MV_001_STATUS', '3_MV_002_STATUS', '3_MV_003_STATUS',\n",
       "       '3_P_001_STATUS', '3_P_002_STATUS', '3_P_003_STATUS', '3_P_004_STATUS',\n",
       "       'LEAK_DIFF_PRESSURE', 'PLANT_START_STOP_LOG',\n",
       "       'TOTAL_CONS_REQUIRED_FLOW'],\n",
       "      dtype='object', length=126)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Row ', 'Date ', 'Time', '1_AIT_001_PV', '1_AIT_002_PV', '1_AIT_003_PV',\n",
       "       '1_AIT_004_PV', '1_AIT_005_PV', '1_FIT_001_PV', '1_LS_001_AL',\n",
       "       ...\n",
       "       '3_MV_002_STATUS', '3_MV_003_STATUS', '3_P_001_STATUS',\n",
       "       '3_P_002_STATUS', '3_P_003_STATUS', '3_P_004_STATUS',\n",
       "       'LEAK_DIFF_PRESSURE', 'PLANT_START_STOP_LOG',\n",
       "       'TOTAL_CONS_REQUIRED_FLOW', 'Attack LABLE (1:No Attack, -1:Attack)'],\n",
       "      dtype='object', length=127)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       " 1    162826\n",
       "-1      9977\n",
       "Name: Attack LABLE (1:No Attack, -1:Attack), dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test['Attack LABLE (1:No Attack, -1:Attack)'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# trim column names\n",
    "train = train.rename(columns=lambda x: x.strip())\n",
    "test = test.rename(columns=lambda x: x.strip())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    162826\n",
       "1      9977\n",
       "Name: Attack LABLE (1:No Attack, -1:Attack), dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test['Attack LABLE (1:No Attack, -1:Attack)'] = [1 if x == -1 else 0 for x in test['Attack LABLE (1:No Attack, -1:Attack)']]\n",
    "test['Attack LABLE (1:No Attack, -1:Attack)'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(172803,)\n",
      "9977\n"
     ]
    }
   ],
   "source": [
    "test_labels = test['Attack LABLE (1:No Attack, -1:Attack)'].values\n",
    "print(test_labels.shape)\n",
    "print(np.sum(test_labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def search_ratio(test_labels, val_len):\n",
    "    val = test_labels[:val_len]\n",
    "    test = test_labels[val_len:]\n",
    "    test_ratio = (np.sum(test) /test.shape[0]) * 100\n",
    "    val_ratio = (np.sum(val) / val.shape[0]) * 100\n",
    "    print(f'val ratio: {val_ratio}')\n",
    "    print(f'test ratio: {test_ratio}')\n",
    "    print('----')\n",
    "    return val_ratio, test_ratio"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val ratio: 8.686342592592593\n",
      "test ratio: 5.449997749529008\n",
      "----\n",
      "val ratio: 5.790895061728396\n",
      "test ratio: 5.770579304616599\n",
      "----\n",
      "val ratio: 4.343171296296297\n",
      "test ratio: 6.131232684475886\n",
      "----\n",
      "val ratio: 2.895447530864198\n",
      "test ratio: 7.007101345039392\n",
      "----\n"
     ]
    }
   ],
   "source": [
    "vr, tr = search_ratio(test_labels=test_labels, val_len=int(0.1 * test.shape[0]))\n",
    "vr, tr = search_ratio(test_labels=test_labels, val_len=int(0.15 * test.shape[0]))\n",
    "vr, tr = search_ratio(test_labels=test_labels, val_len=int(0.2 * test.shape[0]))\n",
    "vr, tr = search_ratio(test_labels=test_labels, val_len=int(0.3 * test.shape[0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25920"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val_len = int(0.15 * test.shape[0])\n",
    "val_len"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25920, 127)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "validation = test[:val_len]\n",
    "validation.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(146883, 127)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_clipped = test[val_len:]\n",
    "test_clipped.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    24419\n",
       "1     1501\n",
       "Name: Attack LABLE (1:No Attack, -1:Attack), dtype: int64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "validation['Attack LABLE (1:No Attack, -1:Attack)'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(146883,)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_labels_clipped = test_labels[val_len:]\n",
    "test_labels_clipped.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25920,)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "validation_labels = test_labels[:val_len]\n",
    "validation_labels.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f8bd6262a00>]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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AACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKuclriZM2eOunfvrtjYWGVnZ2vdunUNrl+6dKnS0tIUGxur9PR0rVy5Muy8MUYzZszQOeeco3bt2snn82nHjh2RHAEAALQSEY+bJUuWqLCwUDNnztTGjRvVr18/5eXlqbKyst7177//vvLz8zV69Ght2rRJQ4YM0ZAhQ1RWVuaseeSRR/Tkk09q3rx5Wrt2rc466yzl5eXp8OHDkR4HAAC0cC5jjInkA2RnZ+vSSy/V008/LUkKhUJKSUnR+PHjNXXq1OPWDxs2TAcPHtSKFSucYwMGDFD//v01b948GWOUnJysSZMm6c9//rMkqbq6WklJSZo/f75uuummk+4pGAwqLi5O1dXV8ng8TTQpAACIpMa+fkdHchNHjhxRaWmppk2b5hyLioqSz+eT3++v9xq/36/CwsKwY3l5eVq+fLkk6bPPPlMgEJDP53POx8XFKTs7W36/v964qampUU1NjfPnYDD4S8Y6oZJtFXrvf/sict8AALQmuWlJurxXYrM8dkTjZt++fTp27JiSkpLCjiclJWn79u31XhMIBOpdHwgEnPN1x0605qeKiop0//33/6wZTkXpzm/0/H8/j/jjAADQ0nXu6LYzblqKadOmhb0bFAwGlZKS0uSPM6BnglyuJr9bAABanUtSz262x45o3CQmJqpNmzaqqKgIO15RUSGv11vvNV6vt8H1df+3oqJC55xzTtia/v3713ufbrdbbrf7547RaL/5VWf95ledI/44AADgxCL6bamYmBhlZGSopKTEORYKhVRSUqKcnJx6r8nJyQlbL0nFxcXO+h49esjr9YatCQaDWrt27QnvEwAAnDki/tdShYWFGjlypDIzM5WVlaVZs2bp4MGDGjVqlCRpxIgR6tq1q4qKiiRJEyZM0KBBg/TYY49p8ODBWrx4sTZs2KBnn31WkuRyuTRx4kT93//9n3r16qUePXrovvvuU3JysoYMGRLpcQAAQAsX8bgZNmyYvvrqK82YMUOBQED9+/fXqlWrnA8E79q1S1FRP7yBNHDgQC1atEjTp0/XPffco169emn58uXq27evs+bu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MKi4uDhVV1fL4/H8smEBAMBp0djX74i8c+P3+xUfH++EjST5fD5FRUVp7dq19V5TWlqq2tpa+Xw+51haWppSU1Pl9/udY1u3btVf/vIXvfDCC4qKatz2a2pqFAwGw24AAMBOEYmbQCCgLl26hB2Ljo5Wp06dFAgETnhNTEzMce/AJCUlOdfU1NQoPz9fjz76qFJTUxu9n6KiIsXFxTm3lJSUUxsIAAC0GqcUN1OnTpXL5Wrwtn379kjtVdOmTVPv3r118803n/J11dXVzm337t0R2iEAAGhu0aeyeNKkSbrlllsaXNOzZ095vV5VVlaGHT969Kj2798vr9db73Ver1dHjhxRVVVV2Ls3FRUVzjWrV6/Wxx9/rJdfflmSVPdxocTERN177726//77671vt9stt9vdmBEBAEArd0px07lzZ3Xu3Pmk63JyclRVVaXS0lJlZGRI+j5MQqGQsrOz670mIyNDbdu2VUlJiYYOHSpJKi8v165du5STkyNJ+te//qXvvvvOuWb9+vW69dZb9e677+q88847lVEAAIClTiluGqt379666qqrdNttt2nevHmqra3VuHHjdNNNNznflNqzZ49yc3P1wgsvKCsrS3FxcRo9erQKCwvVqVMneTwejR8/Xjk5Oc43pX4aMPv27XMe71S+LQUAAOwVkbiRpIULF2rcuHHKzc1VVFSUhg4dqieffNI5X1tbq/Lych06dMg59sQTTzhra2pqlJeXp2eeeSZSWwQAABaKyO+5aen4PTcAALQ+zfp7bgAAAJoLcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArBLd3BtoDsYYSVIwGGzmnQAAgMaqe92uex0/kTMybg4cOCBJSklJaeadAACAU3XgwAHFxcWd8LzLnCx/LBQKhbR371517NhRLperSe87GAwqJSVFu3fvlsfjadL7bqmY+cyYWToz5z4TZ5bOzLmZueXPbIzRgQMHlJycrKioE3+y5ox85yYqKkrdunWL6GN4PJ5W8f8oTYmZzxxn4txn4szSmTk3M7dsDb1jU4cPFAMAAKsQNwAAwCrETRNzu92aOXOm3G53c2/ltGHmM8eZOPeZOLN0Zs7NzPY4Iz9QDAAA7MU7NwAAwCrEDQAAsApxAwAArELcAAAAqxA3TWjOnDnq3r27YmNjlZ2drXXr1jX3lupVVFSkSy+9VB07dlSXLl00ZMgQlZeXh605fPiwxo4dq4SEBHXo0EFDhw5VRUVF2Jpdu3Zp8ODBat++vbp06aLJkyfr6NGjYWveeustXXLJJXK73Tr//PM1f/784/bTHM/bQw89JJfLpYkTJzrHbJ15z549uvnmm5WQkKB27dopPT1dGzZscM4bYzRjxgydc845ateunXw+n3bs2BF2H/v371dBQYE8Ho/i4+M1evRoffvtt2FrPvroI/36179WbGysUlJS9Mgjjxy3l6VLlyotLU2xsbFKT0/XypUrm3zeY8eO6b777lOPHj3Url07nXfeeXrggQfC/i0aG2Z+55139Lvf/U7JyclyuVxavnx52PmWNGNj9vJLZ66trdWUKVOUnp6us846S8nJyRoxYoT27t3bqmc+2dw/dfvtt8vlcmnWrFmtfu5fxKBJLF682MTExJjnnnvObNmyxdx2220mPj7eVFRUNPfWjpOXl2eef/55U1ZWZjZv3myuueYak5qaar799ltnze23325SUlJMSUmJ2bBhgxkwYIAZOHCgc/7o0aOmb9++xufzmU2bNpmVK1eaxMREM23aNGfNp59+atq3b28KCwvN1q1bzVNPPWXatGljVq1a5axpjudt3bp1pnv37uaiiy4yEyZMsHrm/fv3m3PPPdfccsstZu3atebTTz81b7zxhvnf//7nrHnooYdMXFycWb58ufnwww/Ntddea3r06GG+++47Z81VV11l+vXrZz744APz7rvvmvPPP9/k5+c756urq01SUpIpKCgwZWVl5sUXXzTt2rUzf//73501//3vf02bNm3MI488YrZu3WqmT59u2rZtaz7++OMmnfnBBx80CQkJZsWKFeazzz4zS5cuNR06dDCzZ8+2auaVK1eae++91yxbtsxIMq+88krY+ZY0Y2P28ktnrqqqMj6fzyxZssRs377d+P1+k5WVZTIyMsLuo7XNfLK5f2zZsmWmX79+Jjk52TzxxBOtfu5fgrhpIllZWWbs2LHOn48dO2aSk5NNUVFRM+6qcSorK40k8/bbbxtjvv8h0bZtW7N06VJnzbZt24wk4/f7jTHf/8cWFRVlAoGAs2bu3LnG4/GYmpoaY4wxd999t+nTp0/YYw0bNszk5eU5fz7dz9uBAwdMr169THFxsRk0aJATN7bOPGXKFHP55Zef8HwoFDJer9c8+uijzrGqqirjdrvNiy++aIwxZuvWrUaSWb9+vbPmP//5j3G5XGbPnj3GGGOeeeYZc/bZZzvPQ91jX3DBBc6fb7zxRjN48OCwx8/OzjZ//OMff9mQPzF48GBz6623hh27/vrrTUFBgTHGzpl/+oLXkmZszF6aYub6rFu3zkgyO3fuNMa0/pmNOfHcX3zxhenataspKysz5557bljc2DD3qeKvpZrAkSNHVFpaKp/P5xyLioqSz+eT3+9vxp01TnV1tSSpU6dOkqTS0lLV1taGzZOWlqbU1FRnHr/fr/T0dCUlJTlr8vLyFAwGtWXLFmfNj++jbk3dfTTH8zZ27FgNHjz4uH3ZOvOrr76qzMxM/eEPf1CXLl108cUX6x//+Idz/rPPPlMgEAjbT1xcnLKzs8Pmjo+PV2ZmprPG5/MpKipKa9euddb85je/UUxMTNjc5eXl+uabb5w1DT03TWXgwIEqKSnRJ598Ikn68MMP9d577+nqq6+2duafakkzNmYvkVJdXS2Xy6X4+HhnrzbOHAqFNHz4cE2ePFl9+vQ57rytczeEuGkC+/bt07Fjx8Je9CQpKSlJgUCgmXbVOKFQSBMnTtRll12mvn37SpICgYBiYmKcHwh1fjxPIBCod966cw2tCQaD+u67707787Z48WJt3LhRRUVFx52zdeZPP/1Uc+fOVa9evfTGG2/ojjvu0J133ql//vOfYftuaD+BQEBdunQJOx8dHa1OnTo1yXPT1HNPnTpVN910k9LS0tS2bVtdfPHFmjhxogoKCsL2Y9PMP9WSZmzMXiLh8OHDmjJlivLz851/ENLWmR9++GFFR0frzjvvrPe8rXM35Iz8V8Hxg7Fjx6qsrEzvvfdec28lonbv3q0JEyaouLhYsbGxzb2d0yYUCikzM1N//etfJUkXX3yxysrKNG/ePI0cObKZdxcZL730khYuXKhFixapT58+2rx5syZOnKjk5GRrZ0a42tpa3XjjjTLGaO7cuc29nYgqLS3V7NmztXHjRrlcrubeTovBOzdNIDExUW3atDnumzUVFRXyer3NtKuTGzdunFasWKE1a9aoW7duznGv16sjR46oqqoqbP2P5/F6vfXOW3euoTUej0ft2rU7rc9baWmpKisrdckllyg6OlrR0dF6++239eSTTyo6OlpJSUnWzSxJ55xzji688MKwY71799auXbvC9t3QfrxeryorK8POHz16VPv372+S56ap5548ebLz7k16erqGDx+uu+66y3nHzsaZf6olzdiYvTSlurDZuXOniouLnXdt6vZi28zvvvuuKisrlZqa6vxs27lzpyZNmqTu3bs7+7Ft7pMhbppATEyMMjIyVFJS4hwLhUIqKSlRTk5OM+6sfsYYjRs3Tq+88opWr16tHj16hJ3PyMhQ27Ztw+YpLy/Xrl27nHlycnL08ccfh/0HU/eDpO7FNCcnJ+w+6tbU3cfpfN5yc3P18ccfa/Pmzc4tMzNTBQUFzv+2bWZJuuyyy477mv8nn3yic889V5LUo0cPeb3esP0Eg0GtXbs2bO6qqiqVlpY6a1avXq1QKKTs7GxnzTvvvKPa2lpnTXFxsS644AKdffbZzpqGnpumcujQIUVFhf9oa9OmjUKhkCQ7Z/6pljRjY/bSVOrCZseOHXrzzTeVkJAQdt7GmYcPH66PPvoo7GdbcnKyJk+erDfeeMPauU/qtH582WKLFy82brfbzJ8/32zdutWMGTPGxMfHh32zpqW44447TFxcnHnrrbfMl19+6dwOHTrkrLn99ttNamqqWb16tdmwYYPJyckxOTk5zvm6r0VfeeWVZvPmzWbVqlWmc+fO9X4tevLkyWbbtm1mzpw59X4turmetx9/W8rWmdetW2eio6PNgw8+aHbs2GEWLlxo2rdvbxYsWOCseeihh0x8fLz597//bT766CNz3XXX1fuV4YsvvtisXbvWvPfee6ZXr15hXyOtqqoySUlJZvjw4aasrMwsXrzYtG/f/rivkUZHR5u//e1vZtu2bWbmzJkR+Sr4yJEjTdeuXZ2vgi9btswkJiaau+++26qZDxw4YDZt2mQ2bdpkJJnHH3/cbNq0yflmUEuasTF7+aUzHzlyxFx77bWmW7duZvPmzWE/2378DaDWNvPJ5q7PT78t1Vrn/iWImyb01FNPmdTUVBMTE2OysrLMBx980Nxbqpekem/PP/+8s+a7774zf/rTn8zZZ59t2rdvb37/+9+bL7/8Mux+Pv/8c3P11Vebdu3amcTERDNp0iRTW1sbtmbNmjWmf//+JiYmxvTs2TPsMeo01/P207ixdebXXnvN9O3b17jdbpOWlmaeffbZsPOhUMjcd999JikpybjdbpObm2vKy8vD1nz99dcmPz/fdOjQwXg8HjNq1Chz4MCBsDUffvihufzyy43b7TZdu3Y1Dz300HF7eemll8yvfvUrExMTY/r06WNef/31Jp83GAyaCRMmmNTUVBMbG2t69uxp7r333rAXOBtmXrNmTb3/HY8cObLFzdiYvfzSmT/77LMT/mxbs2ZNq535ZHPXp764aY1z/xIuY370azsBAABaOT5zAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsMr/A5eCRx4pbREKAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(test_dropped.to_numpy()[:, 7])\n",
    "#plt.fill_between(np.arange(test_labels.shape[0]), test_labels, color='red', alpha=0.3, linestyle='dashed', linewidth=0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(172803,)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_labels.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_dropped = test_clipped.drop(['Row', 'Date', 'Time', 'Attack LABLE (1:No Attack, -1:Attack)'], axis=1)\n",
    "validation_dropped = validation.drop(['Row', 'Date', 'Time', 'Attack LABLE (1:No Attack, -1:Attack)'], axis=1)\n",
    "train_dropped = train.drop(['Row', 'Date', 'Time'], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [],
   "source": [
    "missing_test = test_dropped.isna().sum()\n",
    "missing_val = validation_dropped.isna().sum()\n",
    "missing_train = train_dropped.isna().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(784571, 123)"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_dropped.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for x in missing_train:\n",
    "    print(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_dropped = train_dropped.interpolate(method='linear', limit_direction='forward', axis=0)\n",
    "train_dropped = train_dropped.fillna(0)\n",
    "test_dropped = test_dropped.interpolate(method='linear', limit_direction='forward', axis=0)\n",
    "test_dropped = test_dropped.fillna(0)\n",
    "validation_dropped = validation_dropped.interpolate(method='linear', limit_direction='forward', axis=0)\n",
    "validation_dropped = validation_dropped.fillna(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>1_AIT_001_PV</th>\n",
       "      <th>1_AIT_002_PV</th>\n",
       "      <th>1_AIT_003_PV</th>\n",
       "      <th>1_AIT_004_PV</th>\n",
       "      <th>1_AIT_005_PV</th>\n",
       "      <th>1_FIT_001_PV</th>\n",
       "      <th>1_LS_001_AL</th>\n",
       "      <th>1_LS_002_AL</th>\n",
       "      <th>1_LT_001_PV</th>\n",
       "      <th>1_MV_001_STATUS</th>\n",
       "      <th>...</th>\n",
       "      <th>3_MV_001_STATUS</th>\n",
       "      <th>3_MV_002_STATUS</th>\n",
       "      <th>3_MV_003_STATUS</th>\n",
       "      <th>3_P_001_STATUS</th>\n",
       "      <th>3_P_002_STATUS</th>\n",
       "      <th>3_P_003_STATUS</th>\n",
       "      <th>3_P_004_STATUS</th>\n",
       "      <th>LEAK_DIFF_PRESSURE</th>\n",
       "      <th>PLANT_START_STOP_LOG</th>\n",
       "      <th>TOTAL_CONS_REQUIRED_FLOW</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>120963</th>\n",
       "      <td>179.557</td>\n",
       "      <td>0.703463</td>\n",
       "      <td>11.8693</td>\n",
       "      <td>457.262</td>\n",
       "      <td>0.299132</td>\n",
       "      <td>0.00114</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>52.2984</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>63.8829</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120964</th>\n",
       "      <td>179.557</td>\n",
       "      <td>0.703463</td>\n",
       "      <td>11.8693</td>\n",
       "      <td>457.262</td>\n",
       "      <td>0.299132</td>\n",
       "      <td>0.00114</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>52.2984</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>63.8829</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120965</th>\n",
       "      <td>179.557</td>\n",
       "      <td>0.703463</td>\n",
       "      <td>11.8693</td>\n",
       "      <td>457.262</td>\n",
       "      <td>0.299132</td>\n",
       "      <td>0.00114</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>52.2984</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>63.8829</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120966</th>\n",
       "      <td>179.557</td>\n",
       "      <td>0.703463</td>\n",
       "      <td>11.8693</td>\n",
       "      <td>457.262</td>\n",
       "      <td>0.299132</td>\n",
       "      <td>0.00114</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>52.2984</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>63.8829</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120967</th>\n",
       "      <td>179.557</td>\n",
       "      <td>0.703463</td>\n",
       "      <td>11.8693</td>\n",
       "      <td>457.262</td>\n",
       "      <td>0.299132</td>\n",
       "      <td>0.00114</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>52.2984</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>63.8829</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.83</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 123 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        1_AIT_001_PV  1_AIT_002_PV  1_AIT_003_PV  1_AIT_004_PV  1_AIT_005_PV  \\\n",
       "120963       179.557      0.703463       11.8693       457.262      0.299132   \n",
       "120964       179.557      0.703463       11.8693       457.262      0.299132   \n",
       "120965       179.557      0.703463       11.8693       457.262      0.299132   \n",
       "120966       179.557      0.703463       11.8693       457.262      0.299132   \n",
       "120967       179.557      0.703463       11.8693       457.262      0.299132   \n",
       "\n",
       "        1_FIT_001_PV  1_LS_001_AL  1_LS_002_AL  1_LT_001_PV  1_MV_001_STATUS  \\\n",
       "120963       0.00114          0.0          0.0      52.2984              1.0   \n",
       "120964       0.00114          0.0          0.0      52.2984              1.0   \n",
       "120965       0.00114          0.0          0.0      52.2984              1.0   \n",
       "120966       0.00114          0.0          0.0      52.2984              1.0   \n",
       "120967       0.00114          0.0          0.0      52.2984              1.0   \n",
       "\n",
       "        ...  3_MV_001_STATUS  3_MV_002_STATUS  3_MV_003_STATUS  \\\n",
       "120963  ...              1.0              1.0              1.0   \n",
       "120964  ...              1.0              1.0              1.0   \n",
       "120965  ...              1.0              1.0              1.0   \n",
       "120966  ...              1.0              1.0              1.0   \n",
       "120967  ...              1.0              1.0              1.0   \n",
       "\n",
       "        3_P_001_STATUS  3_P_002_STATUS  3_P_003_STATUS  3_P_004_STATUS  \\\n",
       "120963             1.0             1.0             1.0             1.0   \n",
       "120964             1.0             1.0             1.0             1.0   \n",
       "120965             1.0             1.0             1.0             1.0   \n",
       "120966             1.0             1.0             1.0             1.0   \n",
       "120967             1.0             1.0             1.0             1.0   \n",
       "\n",
       "        LEAK_DIFF_PRESSURE  PLANT_START_STOP_LOG  TOTAL_CONS_REQUIRED_FLOW  \n",
       "120963             63.8829                   1.0                      0.83  \n",
       "120964             63.8829                   1.0                      0.83  \n",
       "120965             63.8829                   1.0                      0.83  \n",
       "120966             63.8829                   1.0                      0.83  \n",
       "120967             63.8829                   1.0                      0.83  \n",
       "\n",
       "[5 rows x 123 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "validation_dropped.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fca6b608220>]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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xLzwwgs9an7961/n7//+7zNgwIA0Njbm8ssv32gvN998c4YMGZIBAwZk6NChue2223rn0AA7wPr163PRRRdl8ODB2WWXXfLGN74xn/3sZ1MURalGzwX469111135p3/6pzQ0NKSioiK33HJLj/mdqcduzV4AdmZb6rlr167NBRdckKFDh2a33XZLQ0NDTj311Dz99NM91tBz2RZCWbwq3XTTTZk2bVouueSSLFiwIEcddVRaW1uzfPnyHb01gJ3GnXfemcmTJ+eXv/xl2trasnbt2px44olZtWpVqeacc87JT37yk9x8882588478/TTT+c973lPaX79+vUZPXp01qxZk3vuuSff/va3c9111+Xiiy8u1Tz66KMZPXp0TjjhhCxcuDBTp07Nhz/84fzsZz8r1ejbwOvJfffdl6997Wt505ve1GNczwUonz/84Q9585vfnH79+uWnP/1pHnrooVx55ZXZc889SzWXX355rrrqqsycOTPz5s3LbrvtltbW1rz88sulmgkTJuTBBx9MW1tbZs2albvuuiuTJk0qzXd1deXEE0/MG97whsyfPz9XXHFFPv3pT+frX/96qeaee+7J+PHjM3HixDzwwAMZM2ZMxowZk0WLFm2fHwZAL7vsssty7bXX5uqrr87ixYtz2WWX5fLLL89XvvKVUo2eC/DXW7VqVY466qhcc801m5zfmXrs1uwFYGe2pZ774osvZsGCBbnooouyYMGC/PCHP8ySJUvyzne+s0ednss2KeBVaOTIkcXkyZNLn9evX180NDQUM2bM2IG7Ati5LV++vEhS3HnnnUVRFMXKlSuLfv36FTfffHOpZvHixUWSor29vSiKorjtttuKysrKoqOjo1Rz7bXXFtXV1cXq1auLoiiK888/vzjiiCN6POuUU04pWltbS5/1beD14vnnny8OOeSQoq2trXjrW99anH322UVR6LkA5XbBBRcUb3nLWzY7393dXdTX1xdXXHFFaWzlypVFVVVV8b3vfa8oiqJ46KGHiiTFfffdV6r56U9/WlRUVBRPPfVUURRF8dWvfrXYc889S314w7MPPfTQ0uf3ve99xejRo3s8v6mpqfjIRz7ytx0SYCcxevTo4kMf+lCPsfe85z3FhAkTiqLQcwHKKUnxox/9qPR5Z+qxW7MXgFeTv+y5m3LvvfcWSYrHH3+8KAo9l23nTVm86qxZsybz589PS0tLaayysjItLS1pb2/fgTsD2Ll1dnYmSQYOHJgkmT9/ftauXdujnw4ZMiQHHHBAqZ+2t7dn6NChqaurK9W0tramq6srDz74YKnmz9fYULNhDX0beD2ZPHlyRo8evVFf1HMByuvHP/5xRowYkX/+53/OoEGDcvTRR+cb3/hGaf7RRx9NR0dHj35YU1OTpqamHn23trY2I0aMKNW0tLSksrIy8+bNK9X8wz/8Q/r371+qaW1tzZIlS/KHP/yhVLOl3gzwanf88cdnzpw5+e1vf5sk+dWvfpW7774773jHO5LouQC9aWfqsVuzF4DXms7OzlRUVKS2tjaJnsu2E8riVee5557L+vXre/yyKknq6urS0dGxg3YFsHPr7u7O1KlT8+Y3vzlHHnlkkqSjoyP9+/cv/UVygz/vpx0dHZvstxvmtlTT1dWVl156Sd8GXjduvPHGLFiwIDNmzNhoTs8FKK/f/e53ufbaa3PIIYfkZz/7Wc4888x8/OMfz7e//e0kf+qbW+qHHR0dGTRoUI/5vn37ZuDAgWXpzfou8Fpx4YUXZty4cRkyZEj69euXo48+OlOnTs2ECROS6LkAvWln6rFbsxeA15KXX345F1xwQcaPH5/q6uokei7bru+O3gAA0PsmT56cRYsW5e67797RWwF4TXriiSdy9tlnp62tLQMGDNjR2wF4zevu7s6IESPy+c9/Pkly9NFHZ9GiRZk5c2ZOO+20Hbw7gNeW73//+7n++utzww035IgjjsjChQszderUNDQ06LkAALwmrV27Nu973/tSFEWuvfbaHb0dXsW8KYtXnb333jt9+vTJsmXLeowvW7Ys9fX1O2hXADuvKVOmZNasWbn99tuz//77l8br6+uzZs2arFy5skf9n/fT+vr6TfbbDXNbqqmurs4uu+yibwOvC/Pnz8/y5ctzzDHHpG/fvunbt2/uvPPOXHXVVenbt2/q6ur0XIAy2nfffXP44Yf3GDvssMOydOnSJH/qm1vqh/X19Vm+fHmP+XXr1mXFihVl6c36LvBacd5555XeljV06NB84AMfyDnnnFN6Q6yeC9B7dqYeuzV7AXgt2BDIevzxx9PW1lZ6S1ai57LthLJ41enfv3+GDx+eOXPmlMa6u7szZ86cNDc378CdAexciqLIlClT8qMf/Shz587N4MGDe8wPHz48/fr169FPlyxZkqVLl5b6aXNzc37zm9/0+Avmhr+AbvglWHNzc481NtRsWEPfBl4PRo0ald/85jdZuHBh6RoxYkQmTJhQ+rOeC1A+b37zm7NkyZIeY7/97W/zhje8IUkyePDg1NfX9+iHXV1dmTdvXo++u3LlysyfP79UM3fu3HR3d6epqalUc9ddd2Xt2rWlmra2thx66KHZc889SzVb6s0Ar3YvvvhiKit7/iqhT58+6e7uTqLnAvSmnanHbs1eAF7tNgSyHnnkkfz85z/PXnvt1WNez2WbFfAqdOONNxZVVVXFddddVzz00EPFpEmTitra2qKjo2NHbw1gp3HmmWcWNTU1xR133FE888wzpevFF18s1Xz0ox8tDjjggGLu3LnF/fffXzQ3NxfNzc2l+XXr1hVHHnlkceKJJxYLFy4sZs+eXeyzzz7F9OnTSzW/+93vil133bU477zzisWLFxfXXHNN0adPn2L27NmlGn0beD1661vfWpx99tmlz3ouQPnce++9Rd++fYvPfe5zxSOPPFJcf/31xa677lp897vfLdVceumlRW1tbfHf//3fxa9//eviXe96VzF48ODipZdeKtWcdNJJxdFHH13MmzevuPvuu4tDDjmkGD9+fGl+5cqVRV1dXfGBD3ygWLRoUXHjjTcWu+66a/G1r32tVPOLX/yi6Nu3b/Hv//7vxeLFi4tLLrmk6NevX/Gb3/xm+/wwAHrZaaedVuy3337FrFmzikcffbT44Q9/WOy9997F+eefX6rRcwH+es8//3zxwAMPFA888ECRpPjCF75QPPDAA8Xjjz9eFMXO1WO3Zi8AO7Mt9dw1a9YU73znO4v999+/WLhwYY/fra1evbq0hp7LthDK4lXrK1/5SnHAAQcU/fv3L0aOHFn88pe/3NFbAtipJNnk9a1vfatU89JLLxUf+9jHij333LPYddddi3e/+93FM88802Odxx57rHjHO95R7LLLLsXee+9dnHvuucXatWt71Nx+++3FsGHDiv79+xcHHXRQj2dsoG8Drzd/GcrScwHK6yc/+Ulx5JFHFlVVVcWQIUOKr3/96z3mu7u7i4suuqioq6srqqqqilGjRhVLlizpUfP73/++GD9+fLH77rsX1dXVxemnn148//zzPWp+9atfFW95y1uKqqqqYr/99isuvfTSjfby/e9/v/i7v/u7on///sURRxxR3HrrreU/MMAO0tXVVZx99tnFAQccUAwYMKA46KCDin/5l3/p8YspPRfgr3f77bdv8t9xTzvttKIodq4euzV7AdiZbannPvroo5v93drtt99eWkPPZVtUFEVRbL/3cgEAAAAAAAAAALy2Vb5yCQAAAAAAAAAAAFtLKAsAAAAAAAAAAKCMhLIAAAAAAAAAAADKSCgLAAAAAAAAAACgjISyAAAAAAAAAAAAykgoCwAAAAAAAAAAoIyEsgAAAAAAAAAAAMpIKAsAAAAAAAAAAKCMhLIAAAAAAAAAAADKSCgLAAAAAAAAAACgjISyAAAAAAAAAAAAyuj/B7mjexRE2hbCAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 3000x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plt.rcParams['figure.figsize'] = 30, 2\n",
    "plt.plot(test_dropped.to_numpy()[:, 7])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler\n",
    "\n",
    "def scale_data(train, test, validation):\n",
    "    scaler = MinMaxScaler(feature_range=(0, 1), clip=True).fit(train)\n",
    "\n",
    "    train_scaled = scaler.transform(train)\n",
    "    test_scaled = scaler.transform(test)\n",
    "    validation_scaled = scaler.transform(validation)\n",
    "\n",
    "    # train_scaled = scaler.fit_transform(train)\n",
    "    # validation_scaled = scaler.fit_transform(validation)\n",
    "    # test_scaled = scaler.fit_transform(test)\n",
    "\n",
    "    return train_scaled, test_scaled, validation_scaled"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_values = train_dropped.values\n",
    "test_values = test_dropped.values\n",
    "validation_values = validation_dropped.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_norm, test_norm, val_norm = scale_data(train_values, test_values, validation_values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(784571, 123)"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_norm.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(146883, 123)"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels_reshaped = np.zeros_like(test_values)\n",
    "labels_reshaped.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25920,)"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "validation_labels.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [],
   "source": [
    "for idx in range(0, len(test_labels_clipped)):\n",
    "    if test_labels_clipped[idx]:\n",
    "        # labels_reshaped.shape[1] == 51 aka num_feats\n",
    "        labels_reshaped[idx][0:labels_reshaped.shape[1]] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25920, 123)"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "validation_labels_reshaped = np.zeros_like(validation_values)\n",
    "validation_labels_reshaped.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [],
   "source": [
    "for idx in range(0, len(validation_labels)):\n",
    "    if validation_labels[idx]:\n",
    "        # labels_reshaped.shape[1] == 51 aka num_feats\n",
    "        validation_labels_reshaped[idx][0:validation_labels_reshaped.shape[1]] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.save('labels.npy', labels_reshaped)\n",
    "np.save('labels_validation.npy', validation_labels_reshaped)\n",
    "np.save('train.npy', train_norm)\n",
    "np.save('test.npy', test_norm)\n",
    "np.save('validation.npy', val_norm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "val = np.load('../processed/WADI/validation.npy')\n",
    "test = np.load('../processed/WADI/test.npy')\n",
    "validation_labels = np.load('../processed/WADI/labels_validation.npy')\n",
    "test_labels = np.load('../processed/WADI/labels.npy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(146883, 123)"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "validation_labels = (np.sum(validation_labels, axis=1) >= 1) + 0\n",
    "test_labels = (np.sum(test_labels, axis=1) >= 1) + 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['figure.figsize'] = 30, 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PolyCollection at 0x7fbdf7970cd0>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAACVEAAADFCAYAAABXNSDmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACr5UlEQVR4nOz9eXxjZ302/l9H+2JJlnd7xrPvk5lJMkkmk4SENEMmkELCDi2lpIU+pU1bmv6gze9poUD7hNIW6BIKBfIQHloIUMKWkG3IJCGZzCSzZPZ9sT3eN8mSrP18/7glWbIlnVvjY1mSr/fr5Zdt6Ug6sqWjcz7nc1+3oqqqCiIiIiIiIiIiIiIiIiIiIiIiogXKMN8rQERERERERERERERERERERERENJ/YREVERERERERERERERERERERERAsam6iIiIiIiIiIiIiIiIiIiIiIiGhBYxMVEREREREREREREREREREREREtaGyiIiIiIiIiIiIiIiIiIiIiIiKiBY1NVEREREREREREREREREREREREtKCxiYqIiIiIiIiIiIiIiIiIiIiIiBY003yvgB6SySR6e3vhcrmgKMp8rw4REREREREREREREREREREREc0zVVUxMTGBjo4OGAzFs6Zqoomqt7cXnZ2d870aRERERERERERERERERERERERUYbq7u7F48eKiy9REE5XL5QIgnrDb7Z7ntSEiIiIiIiIiIiIiIiIiIiIiovnm9/vR2dmZ6S0qpiaaqNJT+LndbjZRERERERERERERERERERERERFRRrq3qJjik/0RERERERERERERERERERERERHVuJKbqF588UW8/e1vR0dHBxRFwU9+8hPN2+zevRvXXnstrFYrVq1ahW9/+9szlnn44YexbNky2Gw2bNu2Dfv27St11YiIiIiIiIiIiIiIiIiIiIiIiEpWchNVMBjEli1b8PDDD0stf+HCBdx99924/fbbcejQIXziE5/ARz/6UTz99NOZZR577DE88MAD+MxnPoMDBw5gy5Yt2LlzJwYHB0tdPSIiIiIiIiIiIiIiIiIiIiIiopIoqqqqV3xjRcHjjz+Oe++9t+Ayf/mXf4knnngCR48ezVz2gQ98AOPj43jqqacAANu2bcP111+Pf//3fwcAJJNJdHZ24k/+5E/wV3/1VzPuMxKJIBKJZH73+/3o7OyEz+eD2+2+0qdDREREREREREREREREREREREQ1wu/3w+PxSPUUmeZ6Zfbs2YMdO3bkXLZz50584hOfAABEo1Hs378fDz74YOZ6g8GAHTt2YM+ePXnv86GHHsJnP/vZOVtnIiIioqo2PAy88ALgdgOBAFBfD4yPT313ucR1N9ww+8c6fBi4dAmwWoFgcOZjud3icrMZUFUgHgccDmBiYuaydXXA5CRgMgGKAkSj4jJFAX7jN2Y+9quvAn19uY8VCAAWS/7HiseBt7xl9s+ZZu/MGeDo0ZmvAYcDiMXE/9xkAhYvBjZunN91na2xMWDvXvHaLva+MBqBm24CvN75XmOqdM8+m39b6feL11gsBtx553yvJRFR5RgcBF55ReyvKgpw113zvUZEREREhQ0NAS+/DFx3naiLzNa+faIGMb1eNzEB2GxAIgEkk1O1vZtvBlpaxG0nJ4Gf/xxobJw65sxXx3E6gdtv116XRELcn8eTWwtcu1Z8FXPiBNDfP/N5pGuBsRhw/fVAe/sV/qGISvTii8DISOH3BQCsXq392iaiilPydH6l6u/vR2tra85lra2t8Pv9mJycxPDwMBKJRN5l+vv7897ngw8+CJ/Pl/nq7u6es/UnIiIiqjoWC2AwAOGwOMkeCOR+n5wUy+ghFBLfI5H8jxUKiZNV8bgolCjK1Mn/6cuGw+L6REIsbzCI25vN+R97eHjmYxkMhR+LiaWVY2Ag/2sgGhVNRcmk+LkW/meKIgqTWu+LaBSw2+d7bakapBsNp28r068xj2e+15CIqLIMDEztI+q1D0xEREQ0V8bHxfFeXZ0+9+d05q/XGY3i+DKZFMula3u9vVO3NZlEc1X2MWe+Os7IiNy6JJPiuU2vBcbj2re1WvM/j/R+XjIpnitRuYyMFH9fqKpoPiSiqjPnTVRzwWq1wu1253wRERERUUogoF18CIfLsy56CATyX15qYs/Y2OzXhfQhu/8uW4SrZCaTKOhpiUYLv9aJsmlt37mtIyLK1dg49fPExPytBxEREZEMr1c0X+h1bBcMlrZ89r5TJCIGKGqRbfhSVdFENV0kon3bdLJPIfE44PPJrQeRHurrtZdhDwNRVZrzJqq2tjYMDAzkXDYwMAC32w273Y6mpiYYjca8y7S1tc316hERERHVHre7cHpTmkxTh4xyjOYv1CxVajGJ06RVjnSCmZbswl21CoflRlSaTCJGn0iLqha/nts6IqJc2U3Z/KwlIiKiSjc2JtKZ9Dq206oRTjd938nh0L6N7GBNgyH//phMo0k6MasQk4nJzFRe4+P6LENEFWfOm6i2b9+OXbt25Vz27LPPYvv27QAAi8WCrVu35iyTTCaxa9euzDJEREREVAK/X3t0ltGoz2OVIzmnULOUzGgfmfuh8jOZ5JarhSQqp1Ou2TA9NRuRFq3XE7d1RES5sk9A5ks+ICIiIqokeidRKUppy2c3IoXDcgPhZOuMiUT++5N5rlrN8EyionKTadqrhQGiRAtQyU1UgUAAhw4dwqFDhwAAFy5cwKFDh9DV1QUAePDBB/HhD384s/wf/uEf4vz58/jUpz6FkydP4qtf/Sp+8IMf4M///M8zyzzwwAP4xje+gUcffRQnTpzAxz/+cQSDQdx3332zfHpEREREC5BMEpVMFLeMciSeFHqMUgsjTGepHLIFvFIb5SpRMCim6tNSalGTFi6tqRg48paIKFf2PiObqIiIiKjSpZOo9Dq2k5kqL1v2MafVCtjt2reRrWmYzYDLNfNymUYTrWmZjUb5aQWJ9CBTm66FAaJEC1DJTVSvv/46rrnmGlxzzTUARAPUNddcg09/+tMAgL6+vkxDFQAsX74cTzzxBJ599lls2bIF//zP/4xvfvOb2LlzZ2aZ97///finf/onfPrTn8bVV1+NQ4cO4amnnkJra+tsnx8RERHRwiOTRKVXIaYciSeFHkOmiJON8cmVQ7aAp1UgqwZ1dXJJVIqiX0Ic1Tat5sJaeN8QEekpewoaTudHRERElc7lEklUeh3bldpYlJ0eHo3KDcSUGTwGiHplvucl02ii1WiVTOo3aJRIhsxUl0yiIqpKkvNoTHnzm98MVVULXv/tb387720OHjxY9H7vv/9+3H///aWuDhERERFN53BoN2Po1VDU0DD3UdmFGr60GsWmkzmwpfJwueQKZFbr3K/LXAsERDFRawrDREK+6EgL2/h48fdGLbxviIj0lJ0+VY6pqImIiIhmIz3dnV7N36XW7QxZ+Rsmk9zAMNlGLZNJ1ISSydzLZRpNtOpIiqKdzE+kp3hce5mREWDVqrlfFyLSVclJVERERERU4aLRmcWI6Roa9Hms0VF97qcYvUbeyRzYUnnIFvC0XsfVwOmUK+JZLGz0IzlaSVRFBj0RES1I2fuAnN6ZiIiIKl16EJZe0xCXmoSTnR6eTMqth98vd9/x+NwlURGVm0zdklNMElUlNlERERER1RpF0V5Gr+YnrZP5eig08k5mJFy2WmjIqRWyTXy10PgWCsmlpkWjQDA49+tD1U8rSbAW3jdERHrKngK6HFNRExEREc1Guq6nVxOVTINSNper9MeQrQ8ajfkHkLnd2rfVeh7JZOmp9USzIVObzm5KJKKqUfJ0fkRERERU4Uym3OjtfPRKopIdaTYbhZqfSm044RRXlUO2ic/pnNv1KAeLRXt6zfRyHJ1GMjweIBwufH12swARESEx7kMsAcQAxJ31iPnDiCVVxBNJxJMq4gkVsdTPiWQS8YSKRFJFLPV7LPV7IqkiqaqZ6zPLp66LJcT12csmkioSqopkUkUiCcSTydzrkkBSnfo9/V2BAqfVhL+79yrYLRL7EURERFQ7YjHRSKXXdH6NjaU1UmUP3DEYppKxZG9TTDIpmkqmP7dix7hp9fXApUuFry/UoEU0V0Ih7feHVo2eiCoSm6iIiEhXiaSKSDyBSCyJaCKJSCwpfo8nEY4lMBnLum7acuJ7ArGkilg8iVgimftzQkU0IX5OF7rTxe5oXBSjFQVQoGQG7NRZTfjuR7fBZmbhmRaQcFiMVis2hZheSVR2+9yP6C+UquL1lvY8AgF91odmr6FB7nUjO+1fJUsm5aZXi0bFa1SvIinVLr+/+GhHvaZALUBVVYRjSQSjcUxGxb5dOJZAOJbEZCyBaGq/LRoX+3bJVANBuqkg/RVPiqYCFUCb24bf3NIOh4UlCqJaoqpqznFgOJbMbDcisQTCcXFZehsSTR03ii+xPYnExfYkvUwskcwcE4rtjTq13UmIY8L09id9eVIFgPTxYAj41a55/KuUxmxU8IV3b57v1SAiIqJycjpFHSEQAJqbZ39/pSZRZU+bF4uJpietRhHZJCpFyd9UItNoojWQM5EQx8PlSM2nmpE+Zkkfg0RSxyfZl6WPRdKXR+NJGBTAGqyDLRrGBiewqlD/nkwTIhFVHL5ziYhqjKqqmIwlEIjEEYokMie4wqlmpnQzUjw1ojaWVVxOF6DjyWSmYJ3eMYxlGqJSBex4AqFoApPRqeK2uH+JE8Vl9qffO4h/+61rYDWxkYoWiLq6og1UcRUIWhwIjE8iGIkjEIljIhwXP4fF78FIHN959RKWNzrR2eBAKBrPvOdDsantymQojEhcgdUAeEzADzepaCpxlj1NhVJVSm3e8npnvy6kD9nmt+zCXZVKJJKIJoFIDIgkAbMBaMj39rRYaiN5i+aezVZ8etIC2zpVVRGKJlLb/Bgmwrnb/2AkjmBqOx9IfTYEwnH4wzH4U8v7J2Pwh+NIJPXf33viSB8e/b0bdL9fIpKjqiqC0QSCWduIYCSR2S8MReMIRBIIRGIIRRMIRRIIxRKYTO0jimVyGytD0TjmYHMxa4oCmA0GmI0KjAYFZqMBJqMCk0F8NxoUmA0GGA1K6nJxncEAmNKXG5TM9UaDAUYFMBkNMCoKDAYFRgOmflbEsoas200tN/WzQYFYTlHwD788iYlIHD8+eBnbVjTgndcsnu8/GxEREZWL3y92WHSqY6l1dVBKaaQaGQE6O8XPNptcupNsEhWQv2FKJsFbK3XZZBLJzVT10o1NOee4YuIYZDI1QGMydd5LnK+aGtQVSQ/UiKcGbmQ1P00N7pg65xWNJ2d5zCJezy9uTWJJvnGRodBs7pyI5gmbqIiIKkg4lsBoMIqxUBRjwRjGQlGMT8bgnxRF7IlwLFOgnoyJJqZQVOwMBqNihzIQjUsFXpSD0aDAYjTAYjLAZjbAZjbCZjLCZjHCmrrcajLAajbAajLCYjTAbFJgMRphNk4Vs60m8bvFZBCXpYrVZqMh9SV+NhpE/JSqiq//9+pFPH1sAM8cH8DvfHMffvCH2+f5L0J05RJJFYFwHBORWObEdvokt39SnNyaiMQRisQRHPPD36sgCAUTcSCYyPpKApGkAqA/9VXc0EQE+y5qNbwoCCaB0Tjw4ePAk1frvBEqlKpSahLVXCdmkTyXS+7/kV24m2OReCLTJJJuKplINZiIE8ficzZzojiWSKVpiJPG4ZhIU8wZuZZpLs4tOL6zWcWX10x7n0SjorDCqdhIQzyRxFgMGI0BvjgwEgPG48BYHPDHFfjOj8B3dj9Gg9HU/uNUQ0Rc524Gm9kAu9ko9vFSX1aT2MezGKcaFKa+RKOB0WAQDQYGA/aeH8H54SBeOD2EwYkwWlxMYyOajfQx5WgwipFgFOOhKMaC4rjSl/ryT6YaJCezGypjc9rwZDQocJiNsJqNcFiMsKWOAe1mI6ypY8XM8aHJmPpuyGxTrKnjSEvOceHU9enjQpMhtQ0yid8tRgPMQ4MwH34DJgNgVgDjO94+d09UJ+++djHe9/U9OHLZhz9/7A02URFVoHAsgZGg2Mb6J2MYn4xhPCRqef7U9nYiHMf4ZDSz7U03pt66phn/+TtboaRj1ImIsnm9gKoiMTKKgNWZ2WdLD26ZSO3H+VM1jEBWTTB7sEx6QKQZKr6+Fri5XvLxswe0hcOiVqE16Et2UFgyKdKtpqfzTE5q3zaRKH59PC4Szd1uuXUh3SWTKiYicYyHopljjuxBXIFwHL7JGILRBELRqddrekBGICIao+ZrMIaiABajAQ6LMXNMYTWljl9Mxsx5LKvJgKSqItw/iOeHxSC3vzqr4L+vyrPSHNRLVJXYREVENIdUVew0Dk9EMDgRwUggiqGJMIYCEQxNRDAajGE483MUkzGNA4ESKArgtJhgt+Tu5FlSjUlTzUipncFUQ1L6OovJAJvJAGvWyTCrKVXcNorv6fu2mqaK4OmGKfE48zvf8y2rm/DD17vxyR8dxr6LozwxRxUhGk9iPCROaqVPcKVPaI2HohgNxuBLFVmzUz8CkQJT2hWkvZtnMRrgtBrhtJrgspnhsprgtBpRZzPj52/0Zpb7q7eug8MiTnI5LCbxc+p3+7nTsAwO4HsDCr5+WcHxoILusIpOPd9qhQ42mURVvcJhueWuIIkq/R4bDoim5PFQDOOT4nv6JHK6mDM+OfU9HCuS7KOzx4cU3Nus4rbsl6TJVHyKNqppsUQSgxNin3DQH8bgRATDAfEl9h8jmWaI8ZACFcVOuKlAX+EmWYMCuO1m1FlNqLOa4LKZ4LSa4Ext3x2Wqc+FOqsRbrsZbpsZLpu4zGM3o85mgsNshMEw+xN/qqpi+YNPAgD+6LsH8KOP3zTr+6wW4VgCg/4I+nyT6PeHEYklsb7djU2LOXqaZgpG4ujzhdHvC2NwIox+fxiD/og4tvRHMDgRxkggiomS9xlzGRSk3v+mzH5ielvhsJjgtBjhsKa+Zx1vOrP3EVPHn/asfUbzfB4bXvIBRjUVQVVkuusKYrcY8X/vux7X/d1zAIDu0RA6GyRSIIhoViajCQxOhDHgT+2XTYQxlNkvi2I4IOp3I4HZ1fCePT6A+//7IP7pvVtgtzA1napDMqliNCTeB8kksLbNlRnQStqSSRXjkzGMpM4FDAejGA1EMBaKZQZVjwZF7cI/EYJv0oaJ108AODHrx44AuO+4gsc3q9hYJ3GDK0miikblVsZkEvc5ncwUfHGN/VwmUekqnWY9HBD1iNFAFCNB8fNIQDQRjwSnam/+sKhv6z3A3242wmmdOq5wWEyZAV0OiynT2CQGeKWanMzi3Fb2YC9b1uANhyU1oD91Hix9jstsVEprcH78cfyrw4QvdRnwik9BQlVhnH7zUgYAE1HFYBMVURGqqsI/Gc8UKPt9ovlleCKKeDKJG5Y34Dc3d8z3as6LRFLFSCCCy+OTGPCL4kL6+1BAnPxRVeB/3bYC77q2NkdMqqqK8VAMPWOT6PVNond8En2+MPp8YQykCtt9vjAi8dJOypqNCrwOC7wOC+od4kRVvcOMOqs4eVVnnSpUp4vWdrMxc9KrzjZ1Eowj2oD3bF2MT/7oMADgxv+zCyc//1ZYTPPb3EW1JT31yfBEJPUZIQ4mhyYiGAuJg8qh1Inw4YkI/OHZndiyGA1iW5B6r6dPatelT3LZTHBGJlHXcwl1NhNcRqDOBDgMgCv13WkEnEsWwXLdtQUfZ21rHf7pmdMAgD+8bWXhFboQBuzAXy1V8fXLYpvzx6cU/HizCpNem6BCzVIeT2lx4Uyiqhz5otvzSRXuovEkBvziszVzwjjrZMZoMHVCQ4eTx66sphLxXhPvL4dl6jPYOe0z2G5JpfBkFWXSI9NsiRhsz++CxWKCEcCWvQr8CQW/e9yACzclkfmoTia1R1VSVYrEE+gdD6N3XOwvDvjDuDw+id7xcOp1LU7GyVOgQEW9Cag3iekhvSag3gy4jYDHaoBn03p4nZZM85PbLr7X2y2wmQ0VtY+oKAretqkNTx7px8HucfT7wmjz1EbTuz8cw/mhIC4OB9E9GhL/d18YwxMR9PvDBf/vP/hf23HD8oYyry3Nt1A0jksjIVwaCaJ7dBI9YyFcHg+jZyyE3vHJkvYhTQYFXqcFjU5xXOl1muF1WOC2i+NLl82U+m6G2za1P+mymWA31+BxZPZJuUqJbZbQVGeFQQGSKvA3Pz2Kb9/HKU+pdPFEMnN82u6xobHOOt+rNG/CsQQuj0/i8tgk+n3hnFpev0/UfidKPF43GxXUOyzwOsyot09tZ70Oc6oRXeyHeR2WzD7Zo69cxPf2deGJI32IxJP45u9eN0fPuLqpqopwLCkSd1LJOyKtRKQBB8LxzBRN4XgCk9FUInBquqZwbGqapnBcTPFkMRlw+9oW/Okdq+f76VWc9Pujd3wSfePhVI17MnO8IgYHR3KSYW5c0YDv/N62BV1nzT5/NJhqvBxMNWEOpQbEpOsWY6FoidOiT+2PWU2GzDFd9jGeO2tfzmlN1TFStcG61O9JVcVHvv4K+icTeNcR4MurVbytSeOhs5OcZJOoZPcf4/H89zc6CqwsUn8EtNeBSVTSApG4GJzhF59/6fN76dfwcCCCAX/kihuG7WYj3PapY450jc2dqWOL81fu1HXpwVxOa+7gDIfFVNnNmm43PqqE8KUu8evnLyj42xXT3udXMECUKl8oGkfPWOq4fWwSPal9zEanBZ+956r5Xj3SAZuoaEELxxLoGQuhe0xs3HrG0gfPkxicEDsNxVIJvrPnEn51chCfeftGeOzVMZpRVjyRRJ8vjO7REC6NiqJtz9jk1MGULyy10//AD97ArpOD+Of3boHNXH0jq1RVxXAginNDAVwcDuLCSPokyCS6RkPSyTB1VhNaXFY01lnQ6LSi1W1FU50VDXUWNNVZ0eyyotFpSRVcTLVXtJ5HiqLgU3etxRefOoWkCqz561/i7Vs6cP/tq7C2zTXfq1c1VFXF5dR2YEOHG25bbW3zCoknkhiYiODyWOqzwR8RjZIT6WZJURgp9YDSoABehwWNdeJ9X+8wp75SP6cuyy6OpA86pYpTExPAc5eK7+lNBkta54IaGgCfD4oC/MfaJD5+yoDDAQXvPQJ8YaWKtZJp3kUVSpDy+0u7H45GqxxZse1JFRiOAT0RoDcCXA4DvVEFvRGg//QI+p94DsOBSEnnPA0K0JA+ceywwOMQJzLq07/bzXDbTVM/28zwOEQRR/fizHAQSEQBRTzn/1yv4gNHxWN8bwD4rTZ9H47mx0Q4hgvDQZwfCuJCqmHm4kgQl8fFcYXM69dsVNBcZ0Wz2ya+u6xorrOgsU7sNzbVWeB1WuD91dNocFpnjm5Ma6wHblqu59Obc//03i148kg/EkkVv/OtvXjkI9dXVeLKRDiGU/0TODUwgTMDAZwZnMDpgQCGJiKat7WaDGjz2NDmtmHvBTFC9X1f34Mf/eF2XLds4TZSpU+cVlrT32ypqoqhQASn+wM4PTCBs0MBnBsM4OJIEAN+7deLy2oSrxePDc0uK1rdtszxZKvLmtpeiM+2Wvq7zVogMPWzVoJBhfnEjjX40rOnsfvUEO76yov4vVuW496rFy3oE9bTqaqKaCIppl2OJTAZjSMQSSAcS8BlM2FjR20fA6TrVpdGgjg/HMSlkWCqIVPU8kZD0Zz9kP/5+HZsXVq7ny++yRgujYj9sUsjIVwcDqJrNITusZDUdhaY+mxucYl9sFa3LVO3a6yzosFpQVOdBfUOC9y20mt4f//OTVjdUoe//flxPHdiAC+fHcbNq7Q6GqpXLJEU6cCpRO6xYBRjqbRgMc3h1JRkvtSUiHM1FTUAHOwax/mhAP7unZtQZ11Yp8fGglFcGAniwlAQl0bF+6M7dfJ3UGK/FRB9MnazEaFoAq+eH8VdX3kRzz5wW2U3OVyhdE2w3zeJy+Nh9GUGxUQwkDXAK1riAGqP3Yym1DmBxtS2pNE59d3jMMMz3I/6C2fgvvVmuDqaYTXN7rzKj97kwodfGsP5SQV/cgoYian4UFuRvqfsqfWsVsBu136Q6dPzFWI2Ay6XGEiWTabRxOcrfr3RKD+tYA1LJlX0+8NTA3lSNf1en3gd9/nCJc14YDMb0OgUr9cGpyXzc7q27U01E3vsorbmsZtn/ZqtGhMTcBiN2OBUcTyo4OfDwJ8vATzZb4eREWDVqnlbRbpyo8EoLgwHcHFYDHa6OCLOl/eMhjBSYFDciiZug2rFwtpLpAUrXdQ+0T+Bc4MBnB0M4PxQAH2ptCQtHrsZLS5rplDZ7LLiwKUxvHZxDD8+cBm945P41u9eD2cVHniFonGcGQjg1MBE5u9ybkic+NE6UDUoQKvbhnaPDS0uG1rdVrSkTvq0uK341clB/NfeLjxxuA8A8KX3banonafRYBQn+/w43ufH2cGpv4nWKLSmOisWee3o8NjQUW9Hm9uWKba0e+xodlkZzT3P/ujNq7Dn3AheOjMMAPj5G734+Ru9uGNdCx5823qsapHJMV440g1TRy/7cah7HEcuj+PoZT98kzEAojHh//+29Xj3tYuq/uRMLJHMHEh2jYrCUffYVOPo4EREepSY02JEY+okVoPTIr47LJmfG+ssaK4TJ7c8dvPcFpgCAXGCqFgBQ6+p7bIiid/aBPw7kvjUGQUHJxS89RBwfyfwZ515ooxLUShBymYTo9dkTUzMYiVoNqLxJLpGQ6mTGUF0HR1Gt1/BpTDQEwaiaqEXyNS0fxajAS1uK1pcVrS4bJn3VVOdFV7H1PusMZW+o8c0Y7qoq8uZpu9GD2BRVERVBf9wScF7WlRYDBDpXLJFR5o3wUgcJ/v9ONk/gdP9ogHi7GBA86Sc3WzEIq8d7R4bWt02LKq3o6Pehha3aJ5pcYnXsdTrtrk+t6g9YyV1apItI4fFhBc/eTve9R8v48xgAG/9l5fw13evx/uv76yofQ1VFcXoIz0+HOsVxw0n+/3oHi38/2h2WbG8yYmlDQ501NuxyGtHc5010zhV75hqdpkIx3DPwy/j/FAQf/HDN/Dd399WVc1kMibCMfSOhzPN6QP+cE66YHoKE99kDPGkilUtdXjyT99UlQ0j8UQSF4aDON7nx/HU6+VYr79o8pzHbsayJic6vXYs9jqwyGvHYq8di+rF9sO1QAYy6C57ulyZ6WgqyP23r8LzpwZxsGscJ/sn8KkfHcYPXuvGF969CataqndQUDKpIhiNYyI1bXm6YSIQEeky6bSZUDSOiUgcwdTXRDiOUFRcHojEM41TxY7Z3rGlA79/y3Js6awv3xOcA6qqomdsEmcGJ3CyfwJnBwI4NxzE+SHtupXRoGT+Ru/+jz146F2b8MEblpRjteeMLxTDqYEJnOr34/SA2B87O6TdwOywGMU2tV7U8RbV29HmsaHdY0ebR9Q1Xda5H9z4oRuX4vuvdeNk/wR++5t78cEbluDOja1485rmitr3KSQUjWPQH8FIcGqaw+GJKIYCYQxPZE17GIxmaklXyqAgNa2sOZO2k07jt6emaZr6ykoENhthMYlpmqyp73/9+FFcHp/ETw714shlH3b9xZv1+YNUmOFARDT490/gzGAA54ZE8/Z4qPj/wmkxivdGvR3tbhva61PHKm5xDN7issLrtMBsNODpY/344/86gPPDQXzthXP449urr0FAVVUMTURwKVWr6BmbRE+q6bJ3XKTzyNYE0+ePWtzWzICYFpctpyaYrl1I7de6E0DfaQBRQIfzKYvbG/Dk1aP4o5PAr8YU/M15Bc+Pqfi9DhW31Oe5QXZ6eDQq0qi09qGKHaNmi8VEfW56s9PICLBiRfHbNjYCly4Vvj6ZBCJyDYHVTlVVDE5EMgO5zg0FREP1UBA945NSzX0uqwktbnFs2uqyoTV1Tis9UCMdBMAZT4qw2YBYDN/ZoOK61xSMxBT83nHgvzaqsKXfug2127xeKwYnwjjdH8DJfj/ODQVwZkDsV2p9brpsJiz2OjLH7ItTx/FUGxRVraIc6wL8fj88Hg98Ph/cjGlc8IYDERy57MOxyz6c6JvAsV4fLo4UPsFaZzVlNmyLveJkRrvHjlb31EFCoQSlnx66jD/7/iEAwNpWFz6xYzVuXNEIr9OSd/n55puM4dhlH472+nDksh/Hen24MBws2EhmMRqwuMGOpQ2ieNtRb0+d8BEfBs11VpiMxXf6nz7Wj//1//YDEH+jj926AjvWt6DeMX9/o3SDyLFeP45e9uF4ryhm9/vDeZc3KMBirwPLmpxY3ii+L2lwYGmjA4u9jqpM2FqIVFXF65fG0Ds+iV8c7sOzxwcAiGLi3Zva8Tvbl+L6BTraPxxL4OhlH167OIZD3WM40DWet/BoMig5zZXvu24x/v6dm2DW2A7Mt3AsgQvDuSNRL42KRDmZgojJoIgCUurEd7pJsi31e3p0akU10o6NAc8/L0Z3FVJfD7zpTQWv/vdfnclM53fxC3cXvp+jR4ELF3Iu6goDn7ug4LlRcYB9W72Kf1+rwnWlf6KGBuDmm2de/uyzopAjy+MBbr31CleCZAQicZGskdW0fm5IjP4u9l5ToKLdAnRYp74WWVW0L1+Etg0rUwUcS3UWbYaHgV27cgqOhyaAew+LbeftXvH+cEZCwB13AE21Mwo9HEvgzEAAx3p9ON7nR+/4JP7g1pVVM03ZaDCKwz3jONIj9p+P9xVvlmmqs2JFkxMrmp1Y0ujAkgYHOlPHGA1OHV+/P/qRGA1ciMsFvPnN+jxWmXWPhvAn3zuIQ93jAIAd61vx9++8Cq3u+ZneLxiJ41D3OA52jeFg1zje6PFhOJC/KN/usWFNqwurW+qwpk18X9VSV3LTy/mhAN71H69gPBSDy2rCb6ZO/ldD0396uvP0aOfusUl0j4bQMxYSqcZjk1c05epvrGvBV3/72oo+7ko3N+y/NIaDXWM4fNmHE33+vMnWigIsa3RmXiNrWl1Y2ujAiqY6eBxskpoT584Bx46JP348DrzznfO9RiWZjCbw9RfP4exgAM8eH0AknoRBEU0YH3vTinlrtozGkxgLRTPNj+Mh0SwxlkqR8YdjCITjmYQZf6pRaiIcRzAan5OZFS1GAxypaWDGQlGEolOJwdWU8BdLJHGqfwKHe3w43ifqmyf7/AhG8ycgKwrQ4bFjWZPYlmTXrFrc4qT9RDiGP/neQbx0ZhgGBfjsOzbiQzcurYr96wF/GG90j+PoZR+O9vpxos+PPl/h48D0PtmSRgeWp2p4nQ1i38zrqJykvolwDFv/7rmcE92dDXZsW96I925djG0ryj/9T3p6pwF/GEOpWRrSUzwN+MMYDohp3UIFXouFKArgtpnFNLPOdGKJ+O6ymeGxT01NVp+aCjE91axTx5P3qqri7584gW/+WtQw3rS6Ce+8ZhF2bGitysT1ZFLF+eEAjl72Z5q2T/T5C6ZjAECb24blTU4sa3JgSYMTyxpFo/+SBkdOc7+M+//7AH6RGjz9u9uX4iM3L8fyCkzgSNcF03WKc0MBXBgWs00U2q6mmY0KWt02dHhS541SA6hb3VY0pxrLml2Fzx9dsQsXgP37RS2svX329/fKK8DICKJJ4B8vKfhGb+7/+U87VXykXUVD+m2wfv1Uck44DDzxRG5Tej42G/CWt2ivSzIJ/PKXM5OoNm7UbqI6fLh4E1UsJv5mra3a61FFJsIxsS/Q78eJvgmcHpjAmYGJotN9mwxKauC/GMizKDWgp8NjzyTbLrQ0vjnx5JNAQmxHjgaA9x5RMJlUcJ1LxWObUoOKW1uBGzgtdyVIH7cf7vHhcM84jvWKgXHDgcKfmx0eG5Y1ObG00YFljWK/cklqP7vWZqhaCErpKWITFVW1RFLF8V4/Xrs4iv1dYzjUNY7L4/lPbLS5bVjX7sKaVhdWNjuxqqUOSxudaJzlCY2Xzgzhj757IFMMtpoMuHVNM+7c0Io7N7TNWxE0mVRxbiiA1y6O4UDXGA51j+PsYCDvso1OC9amCv0rW+qwqrkOy5qcaHPbdElxeO74AP78sUOZv5HdbMRdV7XhvdctxrbljXMe9xuMxHGwS5z82N81hsM9voKjf5c0OLCuzYV1bS6sbnVhdWsdljU6K7pgT1fm6GUfvvzsaew6OZi5bFG9HTcsb8DbNrVjx/qWiims6c0fjmH/pTHsuzCKfRdGcaTHh2gi98DVbFSwqsWFqzs92Ly4Hld1eLCmrQ6qCjz05Ak8ukccsK5uqcOHblyKOze2ot0jEe08h0LROI73+jMpcqKBI4he32TRAr3FZECn147OBkemqTZ9YLmoXjSMVkyijayhIeDFF4sXOFasEAWKAqSbqF58sWCc9g8HgP99TkFUVbDGoeIb61QsvZKXSaFCzFNPiQKJrCpuLKg0qqqizxdOndgRhdrjvf6C+2GAGPW9vMkpDjhDo1iCSXTagKU2oM0CmPP1Y65dC6xZM3dPpBxCIfFandbU+OwIcP9pBZGkgmU2FY+siWHFu94qXu9VKJ5I4mT/BN7oGccb3eM4ctmPMwMTM5JNzUYFn9y5Fn9w68p5WtP8EkkVJ/v9OHBJNBMf6BrDpQIDMVpcVqxvd2Ndm0vsO7fUYWVzXfmKJ889V3yUr9sN3HZbedZlDiSTKr724jl8+dnTiCVUuGwm/PXd6/G+6+Y+lWpwIozXLoxh34URvH5pDCf7J2Y0gBoNCla31GFDhxsbOzxY3+7CujY3GnQcSNM9GsIffnc/jvWKaWvNRgUfvGEJ7quAE1PpASlnUqkf54cD6BoVTVJ9vrDUiGeP3ZxpThcnoNIj9sVo/XqHGV6HBc+eGMDnf3Ec0XgS1y314r8/dmNFJVJNhGP49ZlhvHhmCC+fHUHX6MxthsNixLo2FzZ0uLG+3S32qVtdTCoutxMngDNnxFn8Kt8fvDAcxN8/cRzPnRDHsQYFuGN9K+7c0Irb1jajxXXl+xGqqmIkGMWgP50gE8FIIJrz80gw9XsgUvTEnSyTQYHLZkKdzQSX1Zz6Ln53WExwWoxwWkVzRfrnOqsJdosRdZk0GvG702KcMdDv9YujuP+/D2YGzf3BrSvwwRuWYGmDo6KO8SbCMbx+aQyvXxzFaxfH8Eb3OCJ5tqcWowErUjXN9e1uLE81b8vWreKJJH7/0dfxwukhAMDyJifu3NCK39m+tGJGzauqivPDQew5N4J9F0ax/9JYwWOMRfV2rGtzYVVrHda0TO2XVdNJYd9kDD97oxeHusbx5JE+TMamGjoW1dtx65pm3HVVG7Ytb5h1bTIUjU9N6TQeRr9PfHaLLzFFWSnTO9nNxky6jphaVqRvN7msmameGp2WzDTrlfKeU1UVn/rRYfxwf0/mMq/DjHuuXoRP7Fg9rwN/tfSOT+JQtzjeOtg1jqO9vrwNbYoiatxrW1PnQlqcWN3iwopmJxwW/d4fqqrib392LFMjVBTgro1t+LMdq7GubX7O0w36wzja6xONZb1+nBmcwMWRwoO6DArQ7rFjeZMTnQ2iJtjZ4MCiehsWex3zVxO8dAl47TX9mqhOnQJOn878+rofeM+R3M9Mi6LirkZgZ6OKu67uhPGaq8UVk5OiiarYQB5AJEC95z3a6xKJAI8/PjOJqq0NuP764re9fBk4cKDw9bGYGDxZxYPTfJMxHOnx4Y2e8Uxj5Pnh/GnTBgXobBANwytT5/SWN4pmj456e01Os1lxfvaznHkxnx8DPnpcQQIK7mtX8ZkVKrB8OXDVVfO4krki8QQsRkPNnvvKNhGO4Y1uH/ZfGsMbPeM41D2e99ywQQGWNjqxttWFVS11WN0q9ilXNNXx2L3GsImKatqF4SBePD2EX58dxt7zIzOKNooiigCbFnmwscONdW1uXLXIo2tRe7re8Ul8dfdZvHJ2JGeHps5qwnu2Lsb7r+/E+va5fW2qqoqu0RBePC0KuHvOj+SNS17steOqDg82LRZ/nw0d7lkV2WSNBCJ49JWLeOpYP04PTDVzrWh24jc3teMtG9qwocOty47dgD+M1y+OYe+FERzoGsPxXj+mHyelG0Su6hCvjw0d4kQYp0dYeA51j+Ox17rwP/sv5zQSbexw46/eug5vWt08j2unD384htcujOLV8yPYe2EURy77ZjQVNdVZsHWpF9cu8eKaJV5sWuQpuoP4vX1d+D9PnMg0RyoKcOPyRty9uR13XdWGpjqNA+tZisaTONrrw+HucRzu8eFQzzguDgdnvNfT3DYTVjTXYVmjA0sb0yPuUiNzXdbaO2gYHBTNTcUKHBpJVA8/fxb/+PQpABpNVG+8AXR1Fb56AvjoCQVDMQUuo4rPrlDxrhatJzBNoZNdu3eXNkWf3Q7s2FHigxMgRiRnkli6xUFnodGtLS6rOODMai5Z2VKX+147flykQmhZtgzYtEm/JzIfRkZE00ue6Pt9PuCPTikYjinwGlX853s34vqrl8/DSpZuMpoQDbkXR/HahVEc6h7POemT5nWYsaHDjdUtLhzv9WPfRTEF6N++fQM+cvP8PddkUsWxXj9eOTeMvRfEc8iXkLO8yYnNiz24qsODjYvcWN/mnv/UWa0kKtkRwBXuWK8PD/74CA73iEbdHetb8Lfv2KjrSd7xUBSvnhdTPu+9MJp30EmHx4ZrU/tIWzo92NBefB9JL/FEEi+dHcZ3XrmI50+Jk91Gg4K3b27He7Z24sYVDZqpwLOlqioujoRwuGccb3T7cPSyDyf6/RLTnVsyKcZLGhxYnGpU70ylG5dy8u75k4O479uvARDpHB/athRv39KBjvr5ad4fmojgmeP9eOpoP149P4JYYmrn02hQcNUiD65dUo+rO+uxscOD5U1OnryoBN3dwMGDVZtElc9LZ4bwH7vP4ZVzI5nLjAYFt6xqwu/cuBR3FBgUlB59fXEkiNMDIo2je3RqOvN8jTvFGBTA67DA4zCj3m5GvUM0QrptZrhtpkyajMduzkzF5bKZU1NzmcoyYK1nLIS7//XXOTWyZY0O/NVb12PH+pY535bmk0iqeKNnHLtPDuLFM8M43DM+41jWbTNh8+L6zP7Hhg7RNDXbJOhEUsUXnz6Jb750IdNUYDaKhO4P3LAEN85D+pFvMoaXzgzhhVNDePHM0Ixpko0GBaua67BpsQebFnlEM3u7qyqTg4oJROJ47eIofn6oFz85dDnnNWE1GXDH+hbsWN+K29e2zNgfTSZVjIWi6B0Po9c3ib7xSfT6wiIZcjSEy+OTRVMWstVZTZkE7haXNTW9k2h8Tk+r3lRnQV0Zpj2cS4e6x/Ffr17CnvMj6BkTjXotLiu++J7NuK0CplVMJlWc6PfjtQuj2HthFAe7xvPOomAzG7Cxw4MN7WI7saHdXfaG7V+dHMD/ffkiXjoznLnszg2t+OPbV83pVKrhWEI0lHWP48AlMXC60EwTbpsJq1I1ilUtdVjeVJdJqqukJv2Mnh7g1VdFes0SHaZfTSVRZXvbIQXHg+J1vsKm4nx46jV/basd//ihG7CyuU4MDPvFL0RNrRjZmls8LpqyDNP+7qtXA+vWFb+tVhJVJAJs3w4sWqS9HhVAVVVcGA6KkIhLouZ2pkAQQrvHhg3tbqxtc2Ftm2iQXNHshFWH6R5pFvLMkvBwN/CPXeL1/cmlSfzx9k7g6qvnYeXEa6x7dDJTu3vt4ijODwexqqUOD71rU83NzOIPx7Dn3Aj2nh/Fvosjec8NW4wGrGmrywQHbOxwY1VLXWXNMkJzhk1UVFPiiST2XRzFc8cH8fypQVyY1nXtspqwdZkX16UK25sWe+atEUZVVRy97MeukwN44nBfzg7PujYX7tzQiruuasf6dpcuB2KxRBKvXRjFr04OYtfJmX8bu9mIzYs9uH5ZA65ZUo8tnfVz3tigJT2l2mOvdePpY/05BXiHxYgti+uxfWUjblndhGs666X+TqPBKF44PYg950bw6vnRvCOAF9XbUyc/6nHNEi/WtbmYLkU5gpE4DnSN4YVTQ/ju3ksIx5JQFOCL796M917XOd+rV5JkUsXRXh92nxrCi6eHcLB7fMaIq3RE/A3LGnDD8gYsbXSUvF0aCUTw/de68fzJQbx+aSxzudGgYPuKRty5sRVv2aBPQlUwVUzcd2EUr18UIwfyFfhb3Vasa3NnGjhWNNdhZbNT32mUqsH4OPCrXxWfzk+jOUW6ierXvxbTBxbRGwH+6KSCQwHxP3hXs4q/Wa7CK/txXaiJ6he/QEnzgBSaFpBm8Idj2Hd+FK+cGyl40Gk0KFjTKhqS0wkb69vccimcEq8bAOI1umzZFT2HiuH3A888U7DpZTAK3HdcwbGgArNBwWfvuQq/tU2HIqnO0if7Xjo9jJfPDuNg91hO8wAAuGwmbFlcjy2dHmxaVI/Niz1o99gy219VVfEXP3gDPz54GQBw+9pm/Pa2pXjz2uaynMAc9Ifxwukh7D41hFfODWMslDvgoM5qwjWpfcVrl9Tjmk5vZU6t9fTTQLTISbDGRuCmm8q3PnMonkjiP3afw1d2nUEiqcJkUHD7uhbctLIRO9a3ljyFlaqK5rldJ8Sx5fST1ooCrGtz44ZlXly/vAHXLvHOW7NOmqqq2HNuBF9/8XwmOQQQacK3rWnGb6xvwW1rmnU5Bh4LRnGwewwHLo1nUuXyJc2YDApWNItEg5XNTixtdGJxqkGqxW3VvZD/9LF+fOpHhzMNEIoC3Lq6Ge/euhi3rWme8xS4sWAUvzzaj5+/0YtXL4zk7Hosb3LitjXNuHVNE65f1sBBOZXqyBExLU4NJFFNd3pgAj9/oxe7Tw3hyOWpdNh7r+7AF969GQBwoGssk+hzuMeXd8BdmqKI7Uuj04oGpwUNdRY0OS1ocFqzfrakEmas8NjNFZMuU4wvFMMXnjqB1y6OoWsklBlA5XWY8Xs3L8ddV7VhdatrTtchGk/ilXPDeOpoP549PjBjQMKSBgeuX9aA65d5cd2yBqxsds7pMex4KIoXzwzje3u7sOf81In1De1u3L25HTs3tmJlc92crcPQRATPHh/A08f68cq54Zz9SovJgGuX1OPGFY24bqmoaS60E1v+cAwHu8bxxOFePH9qCEMTU41lDosR77uuE5F4EheGA+gZm8SAPzxj3zyfOqsp85nd5rGhw2NDu8eO9tTUTq1u24L7W8cSSbx4egif+8XxTBLtVYvc2L6iEdcu8eLWNc1l+ZuoqopzQ0G8fHYYvz47jH0XRmdsr40GBWtbXdjSWS9q/YvrsbLZOS/NoPmc6p/Av+46gyeP9mX2l65ZUo8/evMq3LGuZdafF8FIHPsujuLVc2KQ6LFe34zXvUEBVjTXZQZOr24VM05U3QDKs2fFoMXbbtMnVWlaEhWQ20R14aYkXvMDjw8peHwICCcVOC1GfOYdG/HeTS1QnnwSMGm8D2STqKJR4Kc/nZnCvXQpsHlz8dteuiQaqQpJJIDbbwc8Hu31mAfppqmXzw7j1Quj2Ht+NO908Z0NdmxeXJ9pHL6qw43GeT6vRwU8/nje98a/dAFf7hbb5j9Y68Rf/e5tZdtnHpwI45WzI3jx9BBePT+C3gJTICsK8P+7cy0+ftvKqtifzyeeSOJg9zheOjOMl84M4Y3umQMTFtXbsXWpN3OOfGOHm82HCxibqKgiXR6fRFOdRWrjpKoqDnSN46eHLuPJI305I2XMRgVbl3rxptXNuHlVEzYt8lTkyM5kUsULZ4bwg9e68czxgZwGhmaXFXdvasf/um1Fyc0FiaSKV84N4xdv9OGXR/tyitomQ/pv04SbUn+b2Y5Qm0v+cAxPHu7D86cG8eszwzPmIF/b6sKHti/FhnYXVrW4corjl8cn8Ys3evHUsX4c6h7PKWQbFGBtmxvbljdg61Ivti6d/5MfVF1GAhH8/ZMn8OMD4iRvh8cGr9OCZY1OXL/Mi9vWtmDZFTQdzaVYIolXz4/gqaP9eO7EwIyRm8saHbhxRSO2rWjA9hVNaPPom0DXPRrCzw/34pdH+nOK9wYFuOfqRfijN68sqSidbgR74dQQXjqT/2S912HG1Z312Lw4Ndp/UXmS9apCby/w8svFpwXzeoFbbil4tXQT1WuvAf39mqsUV4F/7wb+pVuBCgVNZhX/Z6WKO2UGOhdKVXn5ZWB0VOIOUsxm4K675JdfQBJJFQe7xrD71BBeOiNOwk0/6FzstaeSWOpx7ZJ6rG93X3lD8rFjwPnz2st1zt9oLd34fGJkWpHkoEAc+OSpJH45Lgovv71tCT7z9o3zPiLWF4rh+VOi2eTF00Mzmo7a3DZsX9mI65Z5cd3SBqxuqdMsvKiqin/ZdQb/9quzmf3jxV47PnLTMrxn62Ldp884OziBXx4Rn41v9OROPVpnNWHb8gbcuKIRN65o1C0Vdc79+MfFm2RrcFt3st+Pz/38eE7iCgBclzouvG6ZF1d35j/Bmh7o8osjvXjqaP+MaRpXNjvxptXN2L6yETcub6zMxrmUN7rH8f3XuvHLo30Yz3o/WkwGvO+6xVjb5saGdhc2Laovuv1IT8n3+kUxbWXXaAgHu8byThNhMRmwscONzYs82LS4Hhva3VjdWlf248yRQAQ/OdSLZ471Y++Fqc9+k0HB9pWNuHNDK35zc4duSXGxRBIvnRnCj/b34LnjgzmJtVsWe7Dzqjbs3NgmRudT5evtBV5/vaaSqPI5PxTA91/rxrd+LRKGLEYDEqo6Y0CN2ahgSYMjk8axtNGJxanpzNs99nnf/5hrvlAMX919Fj94vTtn32ZFk1M0MS1vwJvXNusyCDGeSOLlcyP42aFePHM8dyChy2bCraubcduaZty8ugmL5rFudaBrDD94rRv/c6An57i73WPDratFw+6b1zbP+oSTLxTDk0f78PM3erHnfG5T6spmJ35jXQvetLoZN+gwdV0tSTeBP3GkD7tODOQk/E/X7LJmGqM66u3oSE1JJhIhHRW9nzPfQtE4/vHpU/ivvV050xObjQruWNeK/333+pIb+LUEIvHM1MC7Tw7OONFdZzXh2qVeXL/UixuWN+CqRZ6qaHI7OziBrz5/Dj8/3JvZpqxrc+H3blmOe69eJP05M702eKBrbMZ08U11VlyXOjl+zRIvNna4q+JvpCmdML91q5gKbLY0kqgu3jz1mu8JA3/R58LeXnFssHWxG39h7cf2VhuKlsJlE5FjMTEFmmXafrtME5VWLSkSAbZtE7WkChGIxPHK2WE8n6q3pZPv0ixGA65eUo9rl3gzjR7zHYRAJXj+eSAw83NZVYF/6Qa+kmqkunNDK/7pfVvmJEVTVVUc7vHhuRMD+NXJQRzr9edcbzIoImxjeQOuX9qAZU1OfPX5s5kBjhs73HjnNYvwlg2tWNrozPcQFSW7Vvmrk4MzkrKXNzmxfWUjti0X4QF6DPCn2sEmKqpIb/uXl3B2MIA71rfgD25dgRVNdXDbc2N/x0NR/Gh/D763rwvnhqYKuPUOM+5Y14od61twy+qmqhvdORqM4lcnB/H0sX68cHoocyBmMigiuaHNLZp9lnmxoin/SLPu0RC+/1oXfvh6DwazRh81Oi24bW0z7ljXilvXVN/fJi2RVHFmcAL7L43h12eG8cLpoRlzuq9rc+HqznqcHwpmpoJJW9/uxq2rm3DjykZsXeqtuUhvKr9kUsU/PXMK33jpfN7RfK1uK25Y3ojrl3lxTacXa9tcZS82q6qK1y6O4SeHLuOXR/pyCsBOixE3r2rCm9e24E2rm3Qv9BRzYTiIZ4714+lj/TjQNZ65/LqlXty8qgm3r2vB5kWeGSfaw7EEXjw9hGeOD+CF07kjLQExauDGFY24YbkYmVtoe0kQB2/PPQcYixSeOzpEMaYA6SaqffuAgQHpVXvdDzx4VsGZSfG/e1+LigeXaaRSFUqQKjWJqqVFFFMIgJgXfvepITx3Qrznxqc1yCxvcqaaS+bgoFM2ierqqyuq+HVFxsZEE5VG9H0yGsO/Odbiyy9cBCD2e/7u3qtwXZmjtX2hGJ4+1o8njvTh5bPDOUVql82Em1c24U1rmnDzyqYrSjFMOz0wge/t68JPDl7OfH5ZTQa8ZUMr7t7UjptWNV1xukzXSAg/PXQZ//zs6RnXbV7swZvXNOPWNc3Y0llf0QMOCtLa9tXwtu54rx/PnxrES2eGsPfCaM6fwWRQsLHDjeuWpbdZNuw9P4of7u/OOdloNRlw65rm1LFl87yetL5S0XgSr18axe5TQ3j2+MCMRGKryYAbljdg+0qROnrNEi9GAhHsPj2El1PJBn0FRqOuaHLimiXeTLrBunZXxb1PLgwH8cPXu/HUsX6cz6obmAwKrllSjzWtYoqLzammr1L20XvGQvj+vm78cH93zqCEdW0u3HP1Ivzm5vay7leTTrKTqBbA9M6vnB3Gn37/YGZA4vRj1zVtdRx9DVGHevzgZfz00GXsPT+a0yypKMDNK5vwF3euwTVLvCXf97mhAB57rRuPH7ycc1zbVGfFzo2tuOuqNty4orHitq+jwSieSe0H7r0wmtNI0ui04GO3rsAtq5rQ7rFJpz0nkipePD2EH+7vxjPHBnL2LTcv9mDnxjbs3NiKVS1zmwRWK5JJFd97rQsHu8bR7rFheZMTSxsdaPPY0VxnrfkmyHIYCUSw66RILH3pzHCmAd9iNODGlY24fqkXN65sxJbFxZvWC+kdn8TTx/qx68Qg9l3I3fZYTAZct9SLW1Y3YfuKRmxa5KmYlKkrMTgRxrdeuoD/2tuFQGrq9CUNDvzWtiW4ZVUT1rfPHMQSjiXw0plh7DoxkDe1b1G9HTetFINgrl/WgM4Ge23WBs+cEYlLd9wB1NfP/v6OHAEuXsy5qFATFQDEFy3G130u/NuvziAcE9dtcqr4404Vb2kAjPn+5NEo8O53a69LLCam85tes5SZzu/MGeDkycLXJxLAb/wGMM/niXvGQnj2+ACeOzGAvedHcz77zEYF1y7x4qaVTbhxRQO2dNazcbiaFUiiSvvxIPCXZw2IqWL79b/vXo+7NrbNOvkpmVRxsHsMTx7pxy+P9M1owt3Y4cYtq5twy6ombF3qhcOSu46qquK7r17CF355Mifc4oblDXjnNYuwc2MbGnQaoKSH0WAUTx3txy+P9uGVcyM5g0TqHWbcsqoJb1rdhDetbmagBhXFJiqqOLFEEtsf+tWMaEqX1STm6u5wYzwUw5NH+jLTM9nNRuzc2Ip7r1mEm1c1VVxh4UqFYwm8en4EX919DvsuzEzPaHBacE2niBXc0O5GPKniR/t7sOvkQOYkQb3DjLde1Ya3b+nAtuWN1TFivkTjoSi+t68bvz47hPNDwRlFfkUBrl/WgLdvbsdbNrTpnqpDlDYeiuLcUBC+yShO9E3gpTND2H9pZiqSxWjA+nYXNi32YNMiMY3RXI3S7x4N4ccHLuN/DvTkTF/Z6LTgzo2tuHNjG7avaKyIA7DDPeN4+PmzeOb4QM6JzganBdtXiKk7LUYDfnVSjByYjE3ttKcbwW5d04xbVjVhWVPlj4SoGDJJVK2twA03FLxauokqz2g2LeEk8M+XFHyjV3x+OQ0q3t0CvKNZxZY6wDz9bWMyAW9968w7YhJVyQKROJ493o9fvNGHl84M5xRsXTYTbl0jRsO/aXXT3I7UOXgQ6OnRXq4WkqiCQTH9WrHkIAAIhYAdO/DcQBwP/OBQJm30bZva8JGbluP6Zd45Kw5H40n86uQAfrS/By+ezn1drG6pw44NrXjzmmZsXerVvYgfisbxk4O9+H+vXsKJvqnRcooCrGlx4ZbVTbhtTTNuXNFY9CRFOJbALw734Qevdc9otgeAh961CXesa0GLuwb2GbWaqBbItu7y+CR2nRjAaxfHcODSGC6PTxZc1mIy4C3rxUnr31jXUhuj01NUVcWvzw7jl0f70Tc+iTd6fBiddrLJbjbm7GMBU01n69vdaHXbsKXTg2s6vbolOZXL2cEAnjsxgJ8d6sXxPv+M6y1GAzob7Fje5MTyJidWpaZ7XtroQHOdmNZFVVXsuzCK//vyRTx9vD/z9mpwWvCOLR1433Wd2NDBWlNV6+0F9u+f+v3tb5+/dSmTyWgCl0aDqLdb0OqusimM5oE/HMOr50ZS04EM4ejlqe3JNUvq0eCwwOMwY1VLHda3ubGmzYWOrCmLAZE69ezxAXz7lYs5iXlehxl3b27HO7Yswtal3qqp4aXrl8+fHMRTx/pnpF27bSZctciDqxZ5sLHDjY0dbixpcGb210aDUXxvXxf+69VLOSf21rW58I6rO/D2zR1sSqWKp6oqTvRN4LM/P5bzvgZEzeqW1WI633VtbixpcKCj3pb3eKlrJIRfHOnFk0f6crYvALC00YHb17bg1jVNuGllU0XU8vSWrvN/86XzOU1RLqsJq1vrsLypDqtb63Cyz49njw/knNDPrg2+aXVTVaSk6GJ4GNi9W78kqtdfB/r6ci4q1kSFLVuAJUvQ7wvj4WdO4IcHLiOsimWX21R8bJGKtzYid0BkodrddJEI8JOfAI5pnwFtbcD11xe/rVYT1TwmUV0aCeIXh8XsMfne57etacbta1tww/KGmjoeXfAKJFFlO9C4DH/y4lCmZtHuseGuq9pw65pmXLvEW9IAwq6REP7nQA8eP3g557yQw2LEbWuaccf61pISVUcCETx+8DKePzWIV85NpYQaFGDT4nrR6JeaBaTczUnBSBzPHh/ATw5dxktnhnMap9a01uGO9a34jXUtuHZJ9exf0/xjExVVpHT08Fd3n8XuUzNThtLWt7vx29uW4J6rO6o2VUlW92gIh3t8ONrrw+sXR/FGjy9nlNd0N69qxG/dsBQ7NrQsuFGDw4EI9pwbwcl+P9rcNtyxvpUdxTRvJqMJHOwaw76LozjQNY43usfhm4zNWM5qMmB9uxsrm+vQ2WDHkgYH2j12tLqtaPPYZowAKEZVVbx6fhTf+vV57Do5mNmhrbOacNdVbbjn6g5sX9FYsSPUescn8fypQbx8dhgvnBqaMX1n2qJ6O96yoRU71rfi+uXeBbet041MElVzM3DjjQWvlm6iOnQI6O6+otXc6wP+9oKCE8GpAx2nQcUyO9BgBhpMQIcVWNpch87rrkoVJe1TB0ZMopKSSKp4+ewwfrS/B08f6880rAMicWTHhla8ZUMrrumsL982RDbBrBaSqIaHgV27ZhYIp4tEgJ07AZcLo8EovvDLE/jh/p7MS3xdmws3rmhEm8eGNrcNi7x2LPba0eqyXfEItrODE/jvvd14/GBPTprh2lYX7t7cjrdtaseqlvJMVaWqKo5c9uHxg5fxwqmhGdOK2c1GXLVInJxrcVux2GvH0gYn4skkXjg9hB8fuJz5LDYowPaVjXj5rGjwfPi3rsXdm9vL8jzKQmOk40Ld1nWPhvD6pVG8fnEM+y6MwjcZw2KvHe+6djHevqXjipPNqo2qqjg1MIE950bw6vkR7Dk3kmnK3LLYg1tWixN01y7xwm6prf2s80MBHOoex5nBAE70+XGwK/8+eprTYkR7vR3+yVhO2vNNKxvx29uW4i0bWpnoUSuyk6iMRuBtb5vvNaIK1z0awpeePY3HU9Oc5OOymrCypQ4rmpwwGBS8fHY4MwBQUYDb17bg/dd34va1LVW/LYknkvifAz348YHLODcUwEgwmvcwzGRQsKTRgSanFYd6xjM1Tq/DjHuvWYT3bmVTKlUnVVVxeiCAV84N4/WLY3j53PCMJGcAsJkNWN0iEjHXtrqgQsXP3+jDkctT04orCrB1iRc7N7bh9nUtWNm8cFLWg5E4Hj94Gc+dGMDrF8cy6VTTdXhsmTpFJab2lYXeSVT794um8ix3H1JwrFAT1ZIlopEKAOJxjP70SXyrz4D/1wf4E1Ov1/VOFW9tFAMjF5mTwD33aK9LIgE8+eTMyzduBFasKH7bo0fFPl2x+y5jEtVwIIJfvNGLxw/14o3u8czlBgW4blkDdqxvwVs2tGE5BwbXLq36DAC0tCB49VZ8/YVz+PYrFzPH52mL6u2pVEkbljWKhMnFXjuWN9XB6zAjqQLPnRjAd1+9hJfODGdu57QYsWNDK962qR23rWmedRNu7/gkfnLoMn7xRl/eAUrXLqnH7WtbcNViDza2u9Hs0n+gRro2+N97u/CzN3pz+giuWuTGW68StUq+p+hKsYmKqkI4lsD5oSCO9fpwvM8Ps9GAnRvbcO2S+gVz4DBdJJ7A8V4/DnSN43DPOE71T0BVxUmgD924hNHWRBVKVVV0j07ijZ5xHL3syzRHTp+PeTqnxYgmlxVNdVZ4HRY0uyxocFpQbxejXN02E6IJFaOBCH64vydnPuubVjbivdctxl0b26vuBFg0nsThnnG8eGYY+y6MIJkErllaj7s3tWPTIs+C/QzQlUwSlUbCj3QT1YsvAj5f4es1JFXg1+PAj4cUPD8G+OLF//9mo4JOrwOLGxxYFh7HSlMEi63AcjuwyApYi9XWFkg6S1qfb1JMSfR6d87o7xVNTvzm5nbcvbkDa1rr5uc9J9tEVQtJVOEw8MtfahdVIhHgLW8BPJ7MRcd7/fj2Kxfw00O9Oc1v2cxGBR31dnR6xcjndo8dHfU2tHnsWFRvQ4vbBpd1agptVVWx+/QQvvnS+UyTEQC0uKx457WL8M5rFmFd2/wfUw1NRPDq+RH8+swwdp0cyExJVMxirx0fuL4T7966GO0eO5b91RMAarCJ6umnxVQJhSywbR0VF4jEcarfj6WNTunRqLVCVVX0jE3i0kgI54cDOD8UxLmhQCrpeBJZA1lhMRnw7msX4b6bl2NNK4+7a86lS8Abb4gz19xGUgkuDgdxtNeHQDiO4UAEpwYCONnnx4XhYM7UPGmNTgs+cEMnfnvb0poe+BeJJ3BmIIAjl3043uvHkcs+nBmYmDFYatMiD373pmX4zc3tNZmuQwtXIqniWK8PL50ZxsGucZwfDqBndDIn0Teb0aDgxhUN+M3NHXjLhtYFt0+WTzyRxOmBAC4MB3FmcAJnBgJoddtw9+b2BX1+KGNoCHjhBf2SqA4fFvtDWYo2Ua1fD6xaJX4OBMQgRqcTgTjwvQHgR4MKToWm/kcGqLjJo+LarWuwpNEJj90Mp9UIl9WMeocZbR7bVDNcJCIaT5zTmiBkkqguXRLPpZAyJFGlp6n9/mtd2HViMLM/YDQo2L6iEW/b1I47N/J9vmA89xwwWTgVG0DO+ykcS2D3qUHsPjWEl88No3u0+G3rrCZEE8lMY7qiALesasK7r12MOze2ljRIvxT9vjBePDOEg11jOHrZj2O9Pkzf9XVajFjRLJIElzWK1OclDQ40u8S5rlIGEUTjSTxxpBeP/PpiTuPx0kYH7rl6Ee69ugMrmsszyJNqG5uoiIiI5lkyqeLSaAhHL/twaSSIrtEQesYm0e8LY8AfLpjEVIzVZMB7ti7G79+ynDuNVJzfL5JvijVt1NcDb3pTwaulm6i0RoGVIKECp0NAfwQYiQOjMaAnrOBS0oIe1YLuIkXJtAaTilYr0GwGWiziq9msoskMtDS70XbTdWiqs8JhMdZsUW7fhVE88usLePbEQCbq2GM34x1bOvCerYuxeXEFNCvKJphddZU+BcP5JJtENTkpmqi83hlXjQWjeO7EAM4OBTDkj6DXN4mesUn0+cI5cdaF2M1GNLusaHZZMTQRyUR+Kwpwx7oW/Na2Jbh1dXPFphkmkyrODgVwvNePXt8kBnxhdI2G0D02CYMCLG9y4gPXL8Gta5pzIrxrtonqRz8CrEUKsg0NwM03l299iKpQJJ5A96jYN7eZDVjVUod6R3VNZUglOHFCJDooikgxfcc75nuNqMpF40lcHAnizEAAF0dEemZngwN3bmhdsM1CqqqizxfGuaEAhgMRrGp24apF7vk/7iAqk0RSRddoCKf6/TjVH8CpAT8CkQRuX9uMt2/pYEMFlebMGdEA/uY3A01Ns7+/PXtEbSJL0SaqlSuBDRvEz7EY8MQTM9Luh6PA82NiUOQeX/FtvUEBGpyiJtHutqLNN4Qms4pms4pmC9BoBrzrVsGzZgXqHebC6WN5msFyxOPArbcCjY1F1+dKpKep/e6rlzLJk4BoGH7XtYtw9+Z2tLiKDGal2vSzn4ljjGKKpIWPBaM4OxRA92gIfb4wLg6L80jdo6GcAbH1DjPef30nPrRt6bxMhzzoD+PJI3041D2Ow5d9uDgcnNFUNZ3DYoTXYYHLZoLNbITNbIDVZESd1QSXTXw5LKJJ7PEDl9HvF8/XYjTgrqva8FvblmDb8gbuS5KuSukp4sSrREREc8BgULC8yZk3WlRVVQQicQxNRDAciGIkEMFIMIqRQBRjIfHlm4xhIhyHxWiAw2LEls56fOjGpWhw8uQOSQiFRIR1sSaqhgZ9Hmt0VJ/7AWBUgPVO8TVFBUwJ4K1vRjyRRJ8vjO7RELpGQ7hw4Dgu+OPojgAXJoFwUsFoXMFoHDiRc8+pg63TAeDl3QDEaJnGOiua6izwOizwOi3wOszw2M1w28V3p8UEp9UEp9UIp9WUOcizmyuvAUtVVTx7fABfe+EcDnSNZy6/YXkDfnvbEuzc2FZZJ3QCAbnlgkHtZSpdXR1gkdh2m0wFl/M6LXjvdTNHUsYTSQxMRNCdatTtGxfNVf3+MPp9YfSOT2IiEsdkLIGu1PsGEIWMD96wBPfdvAyLveUvvpTKYFCwptXFdJi0+vriIx21RkESEawmI1a11JVtylKaZ+as6Tzr+D+n2bOYDNw3mUZRRDpqLSdwERVjzKoD3nXVfK8NVb10SpNex3Ze74wmKmnRqPiy527fmyzAe1uB97aquDipYvdQHCdaV6LXN4mJcByBSByBcByjoSii8SSGAxEMByI40Ze+BwWZeh0AHDkP4DwAUbNL1+fqrCbU2UxocFjgSUbgHFFQZ1ThMgFuI+A0Ai4T4DICjoQKpy+EOk89LEaDLrW780MBfPPXF/DjAz0Ix0SzWb3DjHdeswjvv76zIpK8aR6ZzaJ5r5g8gyUzVzktuN7ZgOuXzazTT0YT6PVNwmI0oNVtm9fpoVvcNnzk5qlBrmJQUiiTKHhhOIgzAxPo9YUxEoggqQKhaAKhqPw2rNllxYdvXIrf5jkwqhBsoiIiIiozRVHgspnhspmxonm+14ZqktkMGDQOrPRqfmpomNV0flJc4uSEyWhAZ4MDnQ0O3AQA/tPAZAyACBXwxVVcjgCDMWAoKr4GYwqGosBwDBiIGzAQUxCOJRGMJhDMaiophc1swE0rm3DjigYsa3SixW2D3WxEMBrHoD+MAX8EigIYFAUGRYHRIN73RkWBwZB9uQKz0QCTQYHBMHW9MXVd+sugKFBVIKGqSKoqkkkViaSKpAokVRWXxyfxyK8v4GT/BAAxYufdWxfhd29aVrnFnIYGYGxMezmtKfCqQSAgCo5azyUWEwXS6ZH2RZiMBiyqt2NRkZNVk9EEBvxhDAciGJyIwGoy4PrlDXDbzAVvQxVufLx4ElUtvG+IiPSUvV881/utRERERLOVnr7dqNNguFJrgNnHm0aj5nosswMfWesCdmyecZ2qqhgKRDDoj2AoEEHfaAgDB45manXDMWAkBoyrRvijSagqRM0umshJ4pkyrfkqd8WBI4cBHIbJoMBuNsJuEck3DqsRDosYIGkzG2AzG8X1ZiMcFiPMRgPMJgPMRgMsRgWTsQQOdY/jl0f7kZ7PaWOHG/fdvJzT1NIUmcm+rvD4w24xYmWFzkYiBiW5sKpl5oCCZFKFbzIG32QMY6EoJsJxROJJhGMJhGMJBCNx+MNxTIRjCEUTiMaTuH55A+65ugNWE99XVDlYXSUiIiKqNaqqfRBXgUlUBRUaeReLZX5UFKDeLL425iyU9XdwO4HbbkMwEseAP5xKgItgPBTDSFAkwPlCMfjD4kAvGBEj50LRBAKROIKROJIqEI4l8auTg/jVycG5eLZXzGkx4sM3LcN9Ny1Di7vCI8RlXzd6FQznk92em4BRiMUyJ+kYdosRy5qcWJYnGXGhUFH1M9jn0kqi0mqiJSJaaLK3mUVGghMRERFVDEXR79iusREYGZFffmKi9McYH897saIoaHHZpqa6i0SArr2AY1oqdkcLEtdci4lwDGOhGPyTU7W5iUgcI4Eo/EOjCPUOYCIOTCQAfxwIJcTPgYT4OZQUDVbxpIqJ1G0HJyKlP58sv7GuBX9w6wpOLUYzxePa0/nZF1ZKp8GgiBkfnBYsw8KtRVL1YxMVERERUa1JJLSbqDSaWKRrAh7P3I/oL5Sq4nAAfr/8/aRG8jmtJqxoris5CU5VVYSiCVwaCeH5U4M41uvD5bFJDE5EEIkn4bAY0eC0YFG9HYqCqbSopEiQSqjiPpLqVJJUNJ5EIpMsJb4nUmlT8WQqdUpVM+lV6aQq8bNIrzIZFdy+tgUffdNy1DuqJO5YNomqFqYli0REUUWrkSoaFalVtgpvgKP5p5VEFc43WpeIaAHzeKZ+ltn/ICIiIppPFouo60Vm1/yTkaeBqmjZr7Fx6udEQnxpqa+XWxejMf/xrMMBo0FBvcNSuLZ1OAjYitQ7IxHEb9iGUEsbgpE4JqMJhKIi+SaU9XM4nsBkNIFwLIlQNI7JWAKxRBLRuIpYIolYIgmb2YimOgvuvWYRNnZ4Cj8mLWwOh3btUub9Q0QV54qaqB5++GH84z/+I/r7+7Flyxb827/9G2644Ya8y775zW/GCy+8MOPyt73tbXjiiScAAB/5yEfw6KOP5ly/c+dOPPXUU1eyekREREQLm9WqPVrNo1MBIBDQ536KKfRcSh0ZV8I0afkoigKn1YQNHW5s6KjQafKqhWwSlV6v0/lkMsmNHp2jJCqqQXV1OUl8M7i5fSIiypHdOMUkKiIiIqp0waAY3ahXjcDrLS2JamQE6OwUP5vNcunaBZKoZkgmRVPJ9OTxeFz7tlo1IpMJpnoP3DYz3DaJdSaarYmJwoN/02Re20RUcUrOgnzsscfwwAMP4DOf+QwOHDiALVu2YOfOnRgczD+dyY9//GP09fVlvo4ePQqj0Yj3vve9OcvdddddOct973vfu7JnRERERLTQhULao1yuJJo7H5lCymwVSlUp9SRYKalVNLdkRygupLSIdBIVkRatpCnZ4jUR0ULR2DgVs7qQ9i2IiIioOtXXiyQqvepYpR4jZidRRaNyiVizHQSXTGovEwwWvz4en/u0fKJsMvXN6VNXElFVKLmJ6ktf+hI+9rGP4b777sOGDRvwta99DQ6HA4888kje5RsaGtDW1pb5evbZZ+FwOGY0UVmt1pzlvEVOikUiEfj9/pwvIiIiIkpxu7Wbm4pNBVUK6Xn/ZsHlyn95qSfBmDxQOWSLWtmFu2oVj8tFd5vNLKyQnOkjdqfjto6IKNfIyNRU10x9JCIioko3Pi7qbXod25WazJ6dWmWzydUqZM/TGgz5j2ltNu3baiX+mEy1kWhO1UOmQZE9DERVqaQmqmg0iv3792PHjh1Td2AwYMeOHdizZ4/UfXzrW9/CBz7wATinfWjv3r0bLS0tWLt2LT7+8Y9jpEi05EMPPQSPx5P56kzHShIRERGRODgrNtUTIDfCS4bMaLTZKnRAWmoxSXYKOZp7drvccqXEzVcqm00usS0W004YIgK0p4dkygoRUa7spuxy7LsSERERzYbXKxrA9apjadUI8z1+WjgsEu+1yDRBAWKQWb79MZlGE60BRfE4k5mpvGSa9mphgCjRAlRSE9Xw8DASiQRaW1tzLm9tbUV/f7/m7fft24ejR4/iox/9aM7ld911F77zne9g165d+Id/+Ae88MILeOtb34pEgRHbDz74IHw+X+aru7u7lKdBREREVNtkkqhKLaAUUiglSk8NDfkvZxJV9ZJJZgJqo9AQCsm934xG7VGVdEXS4SM1Q6sBgNs6IqJc2U3ZWo2oRERERPNtbEzss+h1bJdnIGXRXPns9HDZJCrZwZomU/5kLJn6j1Yzl8kkaqJE5SLTtFcLA0SJFqCyVum/9a1vYdOmTbjhhhtyLv/ABz6Q+XnTpk3YvHkzVq5cid27d+OOO+6YcT9WqxVWvaagISIiIqo16SSqYiO0NKK8leLllCmy07LNRqGRdy5XaZHITGepHLLFtZERoNpTZ+vqAItlvteCakldXfFGKm7riIhyZZ9MY8MyERERVTqPR9RNxsb0aaSSTYlKy04PTydRaU0JKDtYLh4HAoGZ9zcyAqxYUfy2Wqk/8TgwMQHU18utC9FsadVngNoYIEq0AJU0/KqpqQlGoxEDAwM5lw8MDKCtra3obYPBIL7//e/j93//9zUfZ8WKFWhqasLZs2dLWT0iIiIiAkQhQusEkV7zsRdKidJToceYnCztfsqRmkVyZAt4tfA/CwSAaFR7uWRSFPyItGhtv+vqyrMeRETVInu6XJnpaIiIiIjmk98PKIp245KsiYnSls9uiLJYAJlQC9ngC5Mpf61HptFEK/XHYCi9YYxoNrKPMwphEhVRVSqpicpisWDr1q3YtWtX5rJkMoldu3Zh+/btRW/7wx/+EJFIBB/60Ic0H6enpwcjIyNob28vZfWIiIiICBAHcFojwPRqfiqUEqWnQo9RLGkrn1KbrmjuyBbwtEZzVQPZJCqTicU+kqM1qrYW3jdERHpSshJWOcULERERVTqbTcxLLzMgS0apSTjZA7zicZF2ryUYlLvvWCx/TUim0UTmecgmYhHpQaY2rZWgRkQVqaQmKgB44IEH8I1vfAOPPvooTpw4gY9//OMIBoO47777AAAf/vCH8eCDD8643be+9S3ce++9aJz2IRcIBPDJT34Sr776Ki5evIhdu3bhnnvuwapVq7Bz584rfFpEREREC5jJlHuyKB+9mp/KkURVKFXFUOKuLKdvqRzleN1UCtkkqliM6RgkR2b0LRERTTGbp34ux1TURERERLORbgTSqu3JKjUJx+GY+tlgkGsUkZ1Cz2zOn7AlM22h1vNQVZHyTVQuMu/RUpPgiKgilHwm6f3vfz+Ghobw6U9/Gv39/bj66qvx1FNPobW1FQDQ1dUFw7Si7alTp/DrX/8azzzzzIz7MxqNOHz4MB599FGMj4+jo6MDd955Jz7/+c/DKhv/SERERESlqaYkqkKpKqWmrbCxoHLIvm5kEpwqnd0u18BnsXAaNpJTX188WY8No0REubKTEWRO0BERERHNp2RSNGfodWzX2FhaI5XWFPL5aA32SYvHxfGs3V76YzY2ApcuFb7eYJCfVpBID5GI9vuUqfNEVemKPoHvv/9+3H///Xmv271794zL1q5dC1VV8y5vt9vx9NNPX8lqEBEREVE+sZgYfVWMXs1PLtfcj+gv1PxUV1faY8vMU0/l0dAAjI1pLycbB1/JolG5OPloVKRWsbhCWsbHixeGmWhGRJQru3FKZv+DiIiIaD6lp/MrNnimFHkaqIoG6GTPKJRIyNU0ZJOoDIb8A+Zkmp+0GsESCVFHKnX6QqIr5XJpv0+1avREVJE4HJ+IiIio1tjt2lHbGvOxSyeG61XQKabQiJ5SR8a5XLNfF9KHbBNfLaRFGAxyKWhMopozNVeuyjf1QTbZ4jUR0UKRvd/BbSQRERFVukBAFObcbn3ur9T9n+xmJYtFLiVcNolKVfM3Zck0mmjV9UwmzXonka5katPR6NyvBxHpjk1URERERLUmGBTx2MUEAvo8llazlh4KpaqU2mAz14lZJE+2qFWO6SLnmuw0kukkKiItWgU4pqwQEeVqbJwaIcD9QSIiIqp0Xq9oKtJrv2ViorTls5OcIhG5ZPdSBi7ma5iKxbRvp7Ue8Tj39ai8ZBoUOWCSqCqxiYqIiIio1rjdgNlcfBmN66WThsvRRFXogLTURoFaSDWqFbIFvFqIYJedzs9sFilyRFq0ogK5rSMiyjUyMrVz63DM77oQERERaRkbEwOy9Dq2k5kqL1t2EpXNJrf/FAzK3bfBkL8mqZW4nL5tMUyionKTSWBjYx9RVWITFREREVGt8fu1R3BJz9enoRzT+RVqliq1mMR0lsohW8DLLtxVK7tdu6kRECMmGfFNMgpNcZpWCwluRER6yt5n5GctERERVTqvF0gm9atjJZOlLZ89mDEcLpwQn01myj9A1D7y1RJlGk20joWZREXlJpNE1dAw56tBRPpjExURERFRrZFJoopE9HusuVboYJNJVNVLNuqsFgoNoZBcLL3BID/1Hy1sWs2r3NYREeViIz0RERFVk7ExMfhRpkFDRp507KJDK7PTw2WTqGSZzfmn/pNJItdKuzKZSptWkGi2ZJKoamGAKNECxCo9ERERUa2RSaLSq6ggc7A4W4VSVUqdU54n0CqHTFMRUBv/s7o6+RGZbKIiGVrNq+XYLhMRVZPsfUaZdEgiIiKi+eR2i8FneqUq2e2lLZ+dHi6bRCVb54nFcpu00mQaTbQGDCUS8tMKEulBZhpKmQZBIqo4rNITERER1RqHAzAaiy+jUYiRnu2vHElBhYokpaZpldp0RXNHpshQynKVLBCQmzookeAUQ3NElU0+qxZahXQ9RwkTEdWC7M9XmZOARERERPMpEBDf9Tq28/tnXFT0KDn7GNpszm2qKkR2XWeTRKU1db2iyA9iI9KDTG2aSVREVYlNVERERES1JhIBksniy+jV/KRVwNBDoVQV6U6vFL2mMKTZy1PAy0t2JGMlk02iMptLHx1KC5PWlA7xeFlWg4ioamSfCNRrWhwiIiKiuZKuIehVEyk1CSe7AT2RkDvGzJculc9skqhknketDaKiyiaTKK+VJk5EFYlNVERERES1xmjUbjDSq/mpHElUhUazmUyl3Q+nSqscsq8brWbAaiCbRBWLMR2D5GhN11cL7xsiIj3ZbFM/c8pTIiIiqnTpRiC9GoJKTcLJTopSFLlBjLKN6mZz/jqfx6N9W63noaocVETlJVObZq2PqCrxTBIRERFRrTEYtAsc1ZREVagAMjlZ2v2U2nRFc0f2dVMLyUw2m9xrz2LhlJMkR6u4nN0sQEREuQmYTKIiIiKiSheP6zs1XalJVNlN5waD3KBE2Ub1eBwIh2deHgxq31arlmkw1EYdiaqHTIMU69FEVYlNVERERES1RmY6P72an8rR9FHouZQah8yRP5VDtolPdtq/ShaPyyUDRaMitYpIi9b7QnYaBSKihaKxcWqAAZOoiIiIqNLZ7SJVSaaxSEaeBKeiQy+zm67icblpBWUb1Q0GkUY1Xb7LphsbK359IsG6CpWXTIKa0Tj360FEumMTFREREVGtcTq1D9Cyo7nzkAjqFmSmKZstqzX/5T5faffD5IHKIdvEV+poyWrGJKo5o8hMPVBNtEbWer3lWQ8iomoxMjI1HU6pTfhERERE5RYIiGYjvepYMo0e2bKbriwWubTjUhrV801TKHPc7nQWv95kKv25Es2GTG06X/IaEVU8NlERERER1ZpAoPAUeGmlToU3nwqNIiu1UUBrxBqVj+wJzDyjJauO0SgXfc8kKpKltX3nto6IKFd2EhXT+oiIiKjSeb0i0VqvBM1SE62yB7RFInI1RNlBYcmkSIyaLhLRvq1WIlY8XvqAS6LZkGl01BjITESViU1URERERLXG7daOwdYrSthi0ed+iik09VupjQJMZ6kcslMr1kISVSSi3fQCiBGTMqM7qWRqvlGu1Uzr+XBbR0SUKzuJip+1REREVOnGxsRgLL2O7WSmysuWPaDNZgMcDu3byKbtGI35E+dlBtslk8WvZxIVlZtMoyOnEyeqSmyiIiIiIqo1fr/26Cy9mqhKHc12JQpN/VZqrDnTWSqH7OuvFpKonE65ZsNkUq7Zikjr9cRtHRFRLq93KolK6+QbERER0XxLJ1HpdWxX6hT32Y1I4bDcQDjZOk88nv/+ZJ6rVjM8k6io3GSa9mphgCjRAsQmKiIiIqJa43JpjzLTaz72UhuZrkShJKpSCyNMZ6kcMtPbAeV5fc21YFBM1UekF63mVY68JSLK5fNNJVGxYZmIiIgq3diYaHySSWeSUWpNIvuY02oF7Hbt28g2apnN+ac3k2k00ZqW2WiUn1aQSA8ytelaGCBKtACxiYqIiIio1kxMaCdR6VWIKUfiSaEkKpkiTjbGJ1eOSERuOa0CWTWoq5NLojIY9EuIo9qm1VwYCJRlNYiIqkb2PiOn8yMiIqJK53KJBnC9ju1KbSwymaZ+jkTkBmLKNmrFYvlrPTKNJlqNVskkMDkptx5EepCZ6pJJVERViU1URERERLXGbtduxtBoKJJO+i6UEqWnQqkqWo1i08kc2FJ55Bt1mI/VOrfrUQ6BgFwxMR6Xby6jhU2rIbQW3jdERHpKJKZ+LsdU1ERERESzkZ7uTq9ju1IHFWanh5vNcgPDZBu1ZpNEpdVopSi5DWBEc00m5ZZJVERViU1URERERLUmFhOjr4rRq/mpUEqUnvQaecfpWyqH7FSMWq/jauB0yhUcLRaxLJEWrSSqWnjfEBHpKbuJqhamCiYiIqLaZjKJhiC9ju1KTcLJHuCVTObuSxXi98vd91wmUQEljAol0oHMe5RTTBJVJTZREREREdUaRdEuGujV/FSOE1GFRt7JNKZkY2NB5ZBt4quFxrdgUC6JKhplOgbJ0RpFXAvvGyIiPWWnkXJ6ZyIiIqp0iiKm85NpXpJRahJOdlKUqoovLbL1QZMpf1K82619W63noary0woS6UEmLY6p80RViU1URERERLXGaNRuotIriUp2pNlsFGp+KrXhhFNcVQ7ZJr5aSGayWuXi5C0Wjk4jOYWmOE2z28uzHkRE1SI7AZNJVERERFTpolFR17PZ9Lm/UpOospvOjUa5moZso3oikb+pJBzWvq3WfpzRWBt1JKoeMrVpA1sxiKoR37lEREREtSYc1h6tplcSVTlO1hdKVfF6S7sfvaYFpNmTbeKTnfavkiUScqM2o1G+RkmOVvNqvqkRiIgWssbGqQEGTKIiIiKiSldXJ+oIetUI8iQ4FR16md10FYvJJenINqobDKLZKd/lWrSOheNxHg9Tecm87s3mOV8NItIfm6iIiIiIao3LpX2AplfiTTmmjSrUqDU2Vtr9lNp0RXNHtomv1NGSlUg2+t5i4YhJkqM1GpnbOiKiXCMjU5/F2dPTEBEREVUiv180Fel1bFfq/k9205XNln/6velKaVTPl56fr7FqOq1jYZNJO7mZSE8yr/tSZ1IgoorAJioiIiKiWjMxIUaKFRONFr1aKT4mbUqhqfb0VGgUWanFpFKbrmjuyBbw8oyWrDpms9yIymiUhRWSo7Xd5baOiChXdhIVP2uJiIio0nm94rhPr2M7manysmUPaAuHgVBI+zayg8KSyfw1y8lJudsWE4/XRqI5VQ+ZJCoOdCOqSlfURPXwww9j2bJlsNls2LZtG/bt21dw2W9/+9tQFCXnyzatW1hVVXz6059Ge3s77HY7duzYgTNnzlzJqhERERGR212+qGCtUWB6KDT1G5OoqpdsAa8WkqjCYbnENpMJsFrnfn2o+mlN18ptHRFRruwkKotlfteFiIiISMvYmBiMJTtFnhaZlKdsV5JEpTFYM8Nkyl9LlHmuWrUVJlFRuckkUcmm8RNRRSm5ieqxxx7DAw88gM985jM4cOAAtmzZgp07d2JwcLDgbdxuN/r6+jJfly5dyrn+i1/8Iv71X/8VX/va17B37144nU7s3LkT4VK7o4mIiIhIxH5rJVHpdQKpUEqUngodbJZaGGE6S+WQSWYCaiOJqq5O7v2WTGo3xxAB2s2r3NYREeWqr59KopKZYpeIiIhoPnm9Yp+llCnyiim1icrtnvpZNokq3xR9+cRi+VOnZBpNtNKumERF5Zb9XimkFgaIEi1AJTdRfelLX8LHPvYx3HfffdiwYQO+9rWvweFw4JFHHil4G0VR0NbWlvlqbW3NXKeqKr7yla/gr//6r3HPPfdg8+bN+M53voPe3l785Cc/yXt/kUgEfr8/54uIiIiIUlwu7SSqQECfxyqUEqWnQo9R6j4gR6NVDpNJbjm9Rl3Op0BAfkQmT+zOiZr7s2ptv2WKeEREC8nExNSHgUw6JBEREdF8Sg+Mcbn0ub88TUtFe56yl7daAbtd+zFk6zxmsxhsNp1Mo4lWg5TRKD+tIJEeZAYX18IAUaIFqKQmqmg0iv3792PHjh1Td2AwYMeOHdizZ0/B2wUCASxduhSdnZ245557cOzYscx1Fy5cQH9/f859ejwebNu2reB9PvTQQ/B4PJmvzs7OUp4GERERUW2bmNBOotJruqdyRBIXeoxSpxIsR2oWyQkG5Zarhf+ZbBKVwVC+aTipumk1hMqMEiYiWkiyp8uVmY6GiIiIaD6lG4H0OrYrdVBhdnp4NJo/OWo6mWUAUa/MNzBIptFEq9EqmQQiEbn1INKDTG26HAOQiUh3JTVRDQ8PI5FI5CRJAUBrayv6+/vz3mbt2rV45JFH8NOf/hTf/e53kUwmcdNNN6GnpwcAMrcr5T4ffPBB+Hy+zFd3d3cpT4OIiIiottls2lHdek33VI4DwUKpKqVOfVZq0xXNHdkCnl7TTs4n2SSqeFzE5BNp0ZrSQXYEMBHRQlQLDdpERERU29K1Ab0GWpVaA8x+XKNRbj1kE5Fnk0Sl1WilKLkNYERzLZnUXkavGjwRldWcV1e3b9+O7du3Z36/6aabsH79enz961/H5z//+Su6T6vVCmv2KDIiIiIimpJIaM9fpdH8VDTWO1s5kqgKjbwrtYlK5sCWykOrCSRN+oVYwRwOuYKjxZK/kEg0XX198Ya7WnjfEBHpKTuRoBamCiYiIqLapncjUGNjaVOKZaeHq6p2jRHQnmovLZ1ENT0ddGQEWLGi+G0bG4GuruLLaA0qJdJTIqFdg+EUk0RVqaRP4qamJhiNRgwMDORcPjAwgLa2Nqn7MJvNuOaaa3D27FkAyNxuNvdJRERERFlkChx6NT+VGgl+JQo1oJSaLBWPz35dSB+yCWa1EMM+Oak9vSYg0qryRdoTTafVhCiTfEZEtJDU1U2d3JBt5CYiIiKaL0ajqOvJ1BJklNJABeQ2nauq3CBG2UZ1kyl/PU9mUJnW81BVJnxTecnUpvV6HxNRWZXURGWxWLB161bs2rUrc1kymcSuXbty0qaKSSQSOHLkCNrb2wEAy5cvR1tbW859+v1+7N27V/o+iYiIiCiLxaI9ak2vUfjzOSVKqQ0ndvvcrAeVTraJz+Wa2/UoB7NZbiQkk6hIltb7gqMciYhy+XxTAwyYREVERESVLhwWDeDT05qulMxUedmypx8zmeTStWUb1ZPJ/E0lMoOBtPbjjMbaqCNR9ZCpTXNmBKKqVHIm5AMPPIBvfOMbePTRR3HixAl8/OMfRzAYxH333QcA+PCHP4wHH3wws/znPvc5PPPMMzh//jwOHDiAD33oQ7h06RI++tGPAgAURcEnPvEJ/N3f/R1+9rOf4ciRI/jwhz+Mjo4O3Hvvvfo8SyIiIqKFJBTSHiXm9+vzWOWYYrnQiB2vt7T7mc+GL8ol+7+rhbQImdh7gElUc0iF5P+gWhSa4jRNr+07EVGtaGxkEhURERFVD7db1BL0qmPlSXAqOgFZdtNVNCqXEl5KUv2VTkGv9feIx3k8TOUlM0CjHLVzItKdqdQbvP/978fQ0BA+/elPo7+/H1dffTWeeuoptLa2AgC6urpgyEo+GBsbw8c+9jH09/fD6/Vi69ateOWVV7Bhw4bMMp/61KcQDAbxB3/wBxgfH8ctt9yCp556CrZSp2ghIiIiIlFs0RolVk37WYVG3mWPjJNRatMVzR3ZE5iljpasRImE3Kgzs1m/UaZU27S279zWERHlGhkRJyIVhamPREREVPl8PpEwr9exnctV2pR+IyNAZ6f42WaTq1XINi8pSv60botF+7Zay5hMpTVzEc3W+Lh2jYYDJomqUslNVABw//334/7778973e7du3N+//KXv4wvf/nLRe9PURR87nOfw+c+97krWR0iIiIiyub3i/SmYlOIaSVVySrHvO6FCjFeb2mNVKU2XdHccTrl/h/ZhbtqZbWKQp6WWAyYnGQjFc0et3VERLkaG4FLl8TPk5Pzuy5EREREWrxe0QA+NqZPI5VMklS2hoapn8NhkYas1Yhut8vddzIp0q2mL69Ho0k8LhrQ2EhF5VJfDwSDxZephQGiRAtQydP5EREREVGFk0mi0ms+9nI0fGQXb7Ixiap6yTbf1UKhYXJS7vkajXIjL4m0Xk/c1hER5UonUQFyjc1ERERE82l0VCQ2zdexXXa9TTaJSrbOYzLlb7iSqf9oNYMxiYrKTSZpv5QUOCKqGGyiIiIiIqo16SSqYvSazk82rns2RkfzX+52l3Y/TGepHOkTmVpqodBQVyffHKVXcyPVNq0CNrd1RES5PB5xIhKY+k5ERERUqbxeUR/Q69iu1AFbTufUz+kkKr3EYvnvT6b+o1UHTCdREZWLy6W9TC0MECVagNhERURERFRr6uq0R9lPTOjzWIVSovRU6DFKjfoutemK5o5sAa8W/meBgIiq15JMsomK5Ghtv2WKeEREC0kwONXALfOZTERERDSfxsdF47fWFHqytKYbmy57f8likRuIKVvnMZvzPy+ZRhOt1B+jsTyJ+URpMu+tWhggSrQAsYmKiIiIqNYEg0AiUXwZvZqfCqVE6anQY1itpd2PniPnaHZkG+Bq4X8mm0RlMnE6P5JTX1/8+snJsqwGEVHVyJ7mWq+TkURERERzJd0IFA7rc3+zmRYwFpNrQpdt1IrF8teEZBpNtBqtVFV+WkEiPcjU8eZrWk4imhU2URERERHVGosFMGjs5unV/FSOJKpCqSqyU8KlaaVzUfnIvm5q4X8mm0QVi7H5heRojb6thfcNEZGesveLyzEVNREREdFspBuBjEZ97q/UGmD2oEWjUW49tAb7pJnNudMFpsk0mjDRhyqNTG2aU0wSVSU2URERERHVGlXVPoirpiSqQo0lHF1WvWRfN3oVDOeT3Z6bgFGIxcJ0DJKjVZzWaqIlIlposvclZU/wEREREc03vY7tZKbKy6Y1hXw+WoN90mKx/KlVMrfXeh6KIld/IdJLPK69jN0+9+tBRLpjdZWIiIio1iQS2k1UejU/eTz63E8xhVJV8o1cK0bmwJbKQ7aJrxaSmSIRuddeNCo/zSEtbFrFZb2mfCAiqhVutzipBsif4CMiIiKaL2azqOtFIvrcX6kJTtnNSomE+NIi26huNOYmXaXJNJpoPY9EAgiF5NaDSA/pqTeLkXn/EFHFYRMVERERUa2xWrUTfPRqfipH00ehkXelTscic2BL5SHbxFeOJr25ZjTKjR5lEhXJ0nqduN3lWQ8iomoxPj41wIBJVERERFTpQiHRAK5XjUBmqrxs2c1KZrOoV2iRbVRX1fxNJTKNJlo1IpOpNupIVD1kUts4qJeoKrGJioiIiKjWhELaB2hXEs2dj0whZbYKpaqUWgQqtemK5o7sCcyxsTldjbJIJ19oYRIVydJKmmLKChFRrsZGJlERERFR9aivF81GetWx8uz/FK1UZCdRRaNyacezbV5KJrWXyTcNYLZ4HPD5ZrceRKWQqW9yUC9RVWITFREREVGtcbvFSLFi8kVnVyqXK//lpTbYlNp0RXNHtqiVXbirVrGYXDHQbGZhheRoJQ1yW0dElCs7TaHU6aCJiIiIym1sTCRa65WgWer+T/a+k80mV6uQbfhSlPzHtDab9m1NJu3rmURF5SQzQIODeomqEpuoiIiIiGqN3y8aN4pJT2kyW5GIPvdTTKGGm1IbBWoh1ahW2O1yy2UX7qqV3a5d6APEiEmZ0Z1UMr02dxVDK92M2zoiolzZTdnl2HclIiIimo2GBnEgq1eCplaNcLrsels4LBLvtcg0QQFi2r58+2MyiflaA4qYREXlJtPoWAsDRIkWIDZREREREdUamSQqjen+FNkpyAqlROmpoSH/5Uyiql6JhNxytVBoCIXkCpYGg1yzFVE0Wvx6buuIiHJlN2UbWAolIiKiCjc6KgbP6HVsJ5OOnS27EUk2iUr2Mczm/MlYMvWfycni15tMoiZKVC4yjY61MECUaAFi5YCIiIio1sgkUek1bVg5RniNjua/vNQGLqazVA7ZJqpaKDTU1QEWy3yvBdWSurri13NbR0SUK/tkGhuWiYiIqNLV14umJL2O7WRTotKy08Nlk6hk6zyxGBAMzrxcpv6jNVVfPC6XaEWkF636DFAbA0SJFiA2URERERHVGqdT+wSRXvOxF0qJ0lOhx9AagTZdOVKzSI7sdH618D8LBLSTgwBRINVIiCMCoL39liniEREtJNnT5Za6/0hERERUbn6/SKLKl9h0JfI0FhXNn89uiLJYAKtV+zFkG7XM5vzHrDKNJlpNZUZj6Q1jRLORfZxRSC0MECVagNhERURERFRrJie1R4Dp1fxUKCVKT4Uew2gs7X540qxyyI4MjETmdj3KQTaJymSSK0wS1dcXv16maY+IaCHJnqaaU7wQERFRpUs3Aul1bFdqEk52TTEW0067B8QAMhmxWP5lZRpNtJ6HqsonYhHpQaY2rZWgRkQViU1URERERLXGZAIMGrt5ejU/lSOJqlCqitZznI7Tt1SOcrxuKoXfL1f4jMXY6EdyxseLX68UHVNMRLTwmM1TP5djKmoiIiKi2UinVOt1bFdqEk52erjBINcoojXYJ81sBhyOK7u91vNQVZHyTVQuMu9R2QZDIqoobKIiIiIiWoiqKYmqUANKqSlFpTZd0dyRfd3IJDhVOrs99+RtIRYLp2EjOVrFZTaMEhHlCganfpY9wUdEREQ0X1RVfNfr2K7UJKrsKeRlG7m0BvukFRpApjVtPaD9PAwGJnxTecnUpvmaJKpKPJNEREREVGtiMe2RVxpNLNJj3Vwu2SWvXKGCTakNJzLz1FN5yDbxZZ/0rFaxmFycfDTK0WlzJF1/rhlaxelQqCyrQURUNbzeqZ9lT/ARERERzRerVRzI6pVWXWoSVXazUiIhV9OQbVQ3GvMPmJNpNNF6HolEbdSRqHrI1MVrrihFtDCwiYqIiIio1tjt2lHbes3HXo7GpEIj72RGqWUrR8MXyZFNoso+6VmtFEVu5CaTqEiW01n8eqasEBHlyt7v0GsfmIiIiGiuBAIiVcnt1uf+Sj1GzG5WsljkGpxkG9VVVa4pKx+tup7JxH09Ki+Z2nShGRaIqKKxiYqIiIio1gQCQDyuvYwetJq19FAoVaXUBhufb/brQvqQLWqVY7rIuWYwyDVRMYmKZGkV4MbGyrMeRETVIjtNgfuDREREVOkaGkSzkV77LRMTMy4qWqbI3neKROQSsWQbvlQ1fzKPTKOJ1kDOeJz7elReMg2KHDBJVJXYREVERERUazwewGwuvozW9bIMZdidLHRAWmqjQC2kGtWKPAW8vLILd9UqGtVuagTEe9Jun/v1oeqn1ZTHbR0RUa7sNAWHY/7Wg4iIiEjG6Kg47tPr2E4mSSpb9r6TzSa3/yQ7jZ7RmL8mqZW4DGjXIJlEReUmk8DGxj6iqsQmKiIiIqJa4/MBsVjxZWSScWSUYzq/Qs1SpRaTmM5SOWQLeNmFu2rlcMg1LSYSYoQnkZZCU5ymcVtHRJSroWHqZ619ZCIiIqL5lk6i0uvYLpksbfnswYzhcOGE+GyygzXj8fy1RJlp0bQeg0lUVG4ySVS1MECUaAFiExURERFRrZFJotJo1pDusZKN656N7BNf2ZhEVb3yRbfnU+h/X02CQbkTtopSnukxqfppTaXAbR0RUa5amB6YiIiIFo50EpVeqUqJRGnLZ6eHyyZRyTKb809vJtNoopV2ZTIBLteVrRfRlZBJoqqFAaJECxCbqIiIiIhqjUwSlV5FBZmDxdkqdOKr1Dnlmc5SOWRTIMrx+pprLhdgscgtq1dCHOWQbNmrHlrNq7XwviEi0lP2PqNeU1oTERERzRWPRww+0ytVyW4vbfns9HDZJCrZOk8sBgQCMy+XaTTRGjCUSMhPK0ikB5lpKJlERVSVrqiJ6uGHH8ayZctgs9mwbds27Nu3r+Cy3/jGN/CmN70JXq8XXq8XO3bsmLH8Rz7yESiKkvN11113XcmqEREREZHTqT3dk16FmHIkBRUqkpQ69VmpTVc0d2SKDIC+ox3ny8QEEI1qL5dIcIohkqO1/a6F9w0RkZ6yP19lTgISERERzad0k5Fex3Z5psorOoQrOz3cbM5tqipEdl1nk0SllS6qKPKD2Ij0IFObZhIVUVUquYnqsccewwMPPIDPfOYzOHDgALZs2YKdO3dicHAw7/K7d+/GBz/4QTz//PPYs2cPOjs7ceedd+Ly5cs5y911113o6+vLfH3ve9+7smdEREREtNBFItpR3Xo1P5VjepRCqSqlpvaU2nRFcydPAS+vWmgqqquTK+KZzaWPDqWFqb6++PXxeFlWg4ioamSfCNTahhIRERHNt3QNQa9ju1KTcLIHgiUScuuRPQVgMbNJopJ5HmrNZVFTJTNItFlopYkTUUUquYnqS1/6Ej72sY/hvvvuw4YNG/C1r30NDocDjzzySN7l/+u//gt/9Ed/hKuvvhrr1q3DN7/5TSSTSezatStnOavVira2tsyXt0gsYyQSgd/vz/kiIiIiohSDQbvBSK/mp3IkURUazaaVtjWdzIEtlYfs6yaZnNv1KIdAQC6JKhZj7DzJ0ZqurxbeN0REespOT+CUp0RERFTp0o1AejUElZqE43JN/awocoMYZRvVTab8A8hkGk20noeqclARlZdMbZpJuERVqaQzSdFoFPv378eOHTum7sBgwI4dO7Bnzx6p+wiFQojFYmiYduJk9+7daGlpwdq1a/Hxj38cI0U+DB966CF4PJ7MV2dnZylPg4iIiKi2yTRRVVMSVaECSDhc2v2U2nRFc0f2dWOzze16lIPNJvfas1hyC5VEhXg8xa+XmWqBiGghyU5GYBIVERERVbp4XN+p6UqtAWY3nSuK3KBE2Ub1RCJ/PU9mUJnW8zAYmPBN5SXTIMV6NFFVKqmJanh4GIlEAq2trTmXt7a2or+/X+o+/vIv/xIdHR05jVh33XUXvvOd72DXrl34h3/4B7zwwgt461vfikSBaWgefPBB+Hy+zFd3d3cpT4OIiIiotkWj2kkkGk0s0hPl1dXJLnnlCj2XUuOQOfKncsgW8GohcTYel0sGikbl4+9pYdN6X+SbGoGIaCHLnvqFSVRERERU6ex2UUfQ69iu1CSq7H2neFwkZ2uRbVQ3GACzeeblMg1jY2PFr08keDxM5aU1yA3gzAhEVaqs7Y9f+MIX8P3vfx+7d++GLWtU+Qc+8IHMz5s2bcLmzZuxcuVK7N69G3fccceM+7FarbBydC0RERFRfk4nYDQWX0avxBuZacpmq9B+X6knwZg8UDlkk6iyC3fVSib2HmASFclLF9QL8XrLty5ERNUg+8RhqU34REREROU2MSEaL/Q6tvN4SkuSHxkB0jMAWa1yKeGl1OiudJpCp7P49SaTXFMLkV58vvxNgdlKnUmBiCpCSe2PTU1NMBqNGBgYyLl8YGAAbW1tRW/7T//0T/jCF76AZ555Bps3by667IoVK9DU1ISzZ8+WsnpEREREBIhiS6Ep8NImJ4tefYXljLlRaBRZqcUkrRFrVD6yJzBLHS1ZiYxGuVFnTKKaM+qVFmgrldb2nds6IqJc2U3Z/KwlIiKiStfQIBqN9Dq2k5kqL1v2vlM4rFlDBCCfVJ9MisSo6SIR7dtqJWLF46KphahcZAbschAHUVUqqYnKYrFg69at2LVrV+ayZDKJXbt2Yfv27QVv98UvfhGf//zn8dRTT+G6667TfJyenh6MjIygvb29lNUjIiIiIkAcnGmNgtFKqpIlE7c9W4Wmfiu1mMR0lsohO7ViLSRRRSLaTS+AGDFpt8/9+lD102oK47aOiChXdlO2TJICERER0XwaHRWp1nod22nVCKfL3ney2wGHQ/s2smk7RmP+xHmZRpNiicwAk6io/GQS2DidOFFVKnkizgceeADf+MY38Oijj+LEiRP4+Mc/jmAwiPvuuw8A8OEPfxgPPvhgZvl/+Id/wN/8zd/gkUcewbJly9Df34/+/n4EUokCgUAAn/zkJ/Hqq6/i4sWL2LVrF+655x6sWrUKO3fu1OlpEhERES0gfr/26Cy9mqgKpUTpqVDkeKnT8zGdpXKYJGcVr4UkKqdTrtkwmdR+3xIB2q8nbuuIiHJln4DUOvlGRERENN/0TqJSlNKWz25EmpyUGwgnW2eMx/MnW8k0mmg1w8fjbFih8pJp2quFAaJEC5Dk2Ysp73//+zE0NIRPf/rT6O/vx9VXX42nnnoKra2tAICuri4Ysqar+I//+A9Eo1G85z3vybmfz3zmM/jbv/1bGI1GHD58GI8++ijGx8fR0dGBO++8E5///OdhzdeNTERERETFySRR6TUfu9crmrbmUqEkqlIjupnOUjlkC3i18D8LBMRUfVqNY4pSemGTFqZgsHjxmCNviYhyZZ9Mk0mHJCIiIppP6SQqvY7tZKbKy5Y9/Z/NJpdEJVvPMJvF1H/TG9tlGk20pmU2mQCXS249iPTg82nX4EdGgNWry7M+RKSbkpuoAOD+++/H/fffn/e63bt35/x+8eLFovdlt9vx9NNPX8lqEBEREVE+6SSqYqPANGKypVs5ypF4UiiJyuHILexo4Wi0yiFbwJvrBr1ycLnkkqgURb+EOMqh1FpzWn198UZYrcIyEdFCk33ij9P5ERERUaVzu0US1cQE0NQ0+/urqwOGhuSXzx4EFomI5Cins/htolG5+47FxGCz6Y1ZIyPAihXFb9vYCHR1Fb4+kRCpWYUGYxLpzeHQTpVnEhVRVSp5Oj8iIiIiqnAOh3Yzhl4NReUoTBQaeVfq1GcyI+eoPGRHBtZCMu3EhFwxMR4vfXQoLUxa2+9aeN8QEekpkZj6uZQGfCIiIqL5kJ4+T6/m71KT3LNmG4LJJDcwrK5O7r7TSVTTyTSajIwUv15RtFOBiPQkk3Kr9boloorEJioiIiKiWhOLiRFrxejV/FQoJUpPeqWqcPqWyiFbwJse716N6urkCo4Wi/bITroiqtb2sNrU1xe/vtaeLxHRbGXvA2ptQ4mIiIjmWzoJSq+aSKlJONkDvJLJ3Ib0QmSTxNNJVNPJNJrIPI9aS6KmyibzHpVtMCSiisImKiIiIqKFSK/mp3KciCo08q7U0WW10JBTK2Sb+GQKdZUuGJRLoopG8xcSiabTSqJiwygRUa7sJmVO70xERESVLt0IpFdNpNQkHNn08Gyy9UGTCbDbr+wxtZ6HqspPK0ikB5kkcKbOE1UlNlERERER1RqTSXvklV5JVLIjzWajUPNTqdOxcIqryiHbxFcLUzBarVOjSIuxWK6sUEkLT6EpTtPyFaSJiBay7ARMJlERERFRpYtGRV1Pr+n8Sk2iym46NxrFVym3KSaRyN9UEg5r31ZrP85orI06ElUPmdq0ga0YRNWI71wiIiKiWhMOa6cu6ZVEVY6T9YVSVbze0u6HKT+VQ7aJT3bav0qWSMhNrxaN6jd1JdU2rdcJX0dERLmyTxwyiYqIiIgqndMp6np6HduVmkSVve8Ujcol6cg2qitK/qYsmUYTrYGc8TiPh6m8ZF73pc6kQEQVgU1URERERLXG5dJOvtGYj13RSrJKK8e0UYUatcbGSrufUpuuaO7INvGVOlqyEqmqXBOVxaL5viQCoJ2qx20dEVGu7BOHTH0kIiKiSuf3i6YivY7t3O7Sls/ed7LZ5NKdZBvVFSV/er5M2pVWMpfJxNRRKi+Z132pMykQUUVgExURERFRrfH7gVis+DLRqD6PpZV4pYdCo8hKLSaV2nRFc0f2BGapoyUrkdksVwyMRllYITla211u64iIcmU3ZfOzloiIiCqd1ysGY+l1bDc5OeOiokMns/edwmEgFNJ+DKdTbl0Sifw1yzzrOIPWsXA8ztRRKi+Zpj0OdCOqSmyiIiIiIqo1Hk/5ooK1RoHpodDUb0yiql7hsNxytZBENTmp3dQIiBGTWglDdEUkcsCqSyJR/Hpu64iIcmU3ZVss87ceRERERDLGxkRak17HdjIDu7Jl7zvZ7XJJVLKDNU2m/LVEmWYUrTR8JlFRuck07cmm8RNRRWETFREREVGt8fm0Cwt6nUAqlBKlp0IHmx5PaffDdJbKYZA8DKmFJCqXS+79pqrazTFEgHbzKrd1RES5svcZZabYJSIiIppPDQ36JlGV2kSVPf3f5KRcElW+Kfryicfzp07JPFettCsmUVG5yUyVWQsDRIkWIDZREREREdUat1uMvipGr6lMCqVE6anQY5TawFVq0xXNHa3XZ1otjCCcmJAbkamqPLFLcgKB4tfLFPGIiBaS7O2m1kADIiIiovk2OiqakvQ6tpOZKq/Q8jabSKPSIlvnMZuBurqZl8s0mvh8xa83GvPfN9FckalN18IAUaIFiE1URERERLVmYkL7BJFGc4rsALKyRBIXeoxSpxIsR2oWyZEZxQhoN4tUA9kkKqOxfNNwUnXTai6UfX8RES0U2dPlykxHQ0RERDSfXC4xyEqvAZClDirMTg+PRMSXFtlGrVgsf61HptFEq9FKVeXWlUgvMrXpcgxAJiLdsYmKiIiIqNbYbNrTpekVCV6OA8FCI+9Knfqs1KYrmjuyBbxaaCqSTaKKxUofHUoLk9b0BLIjgImIForspEc21RMREVGlC4fFd5kBWTLy1ACLjp3MrsWYTHLHmLKpWbNJopJptNKqhxLpKZnUXkavGjwRlRU/TYiIiIhqTSKhPS2YXs1P5UiiKpSqUmoTlcyBLZWHVhNImnQkWgVzOuWawSwWMdqUSItWElUtvG+IiPSU3cxcC1MFExERUW1LH9Np1fZkyTQoZcuuw6mq3HpoTbWXNpdJVIoiUr6JykWmNu10zv16EJHu2ERFREREVGtkmoX0an4qNRL8ShRqQCk1WUprikMqH9kmvlqIYZ+clHvtRaNMxyA5Wk2IsVhZVoOIqGpkpx3INnITERERzZd08pNex3YyDUrZspvOk0m5OqNso7rRmL+ely+dajqt55FMTqV4EZWDTG2aNRqiqsQmKiIiIqJaY7FoJ5HoNQp/Pps+8o1cK8Zun5v1oNLJNvHVQjKT2SwXJ88kqrmj0+DdiqH1OnE4yrMeRETVIjsZgUlUREREVOnCYVHX0yvBptQkquyajex0frKN6slk/qaS7OTQQrT244xGuWYsIr3I1Kb1SpQjorJiExURERFRrQmFtEeJ+f36PJbVqs/9FFNoxI7XW9r9MOWncsj+72ohLUK2WMIkKpIVDBa/Xq/tOxFRrcg+cVgL+xZERERU29xuUUvQ69iu1CSq7H2naFQuJVw2qV5RrnwKeq2aSTzO42EqL5kBGhbLnK8GEemPTVREREREtcbt1h4lphE3fIXljLlRKFVlbKy0+ym16YrmjuwJzFJHS1aiREKukcps1m+UKdU2rQIct3VERLmyTxwynYCIiIgq3fi4aDTS69iu1NTr7H0nu10u7Vi2eUlRRGLUdDKNJlrLmExMHaXykqlvljqTAhFVBDZREREREdUav1+MviomkdDnscoxr3uhQkypxaRSm65o7shON1bqaMlKZLXmLxBOF48Dk5Nzvz5U+7itIyLKld2Uzc9aIiIiqnQNDWIwll7HdnmSpIqGQTU0TP08OSm3/yRb50kk8k/dJ9NoopVgFY8zdZTKS6ZprxYGiBItQGyiIiIiIqo1Ho92EpXWdH+yZIsks5FdvMnGJKrqJdt8VwuFhlBI7vkajSKNikiL1uuJ2zoiolzZTdla+8hERERE8210VN8kqlKnz8uut9lsIo1Ki2ydx2zOf3+Fan/ZtKYVZBIVlZtM014tDBAlWoDYREVERERUa3w+7SQqjen8pMnGdc/G6Gj+y93u0u6H6SzVpxYKDS6XXCy9qurX3Ei1Tat5lds6IqJcHs/Uz6WeRCQiIiIqN69X3yQqmZpEtuzpj8NhuSQqVZW771hMDDabrlDtL5vWtIRMoqJyk5kqsxYGiBItQGyiIiIiIqo1Lpf29GETE/o8lsxIsbl6jFLnlC+16YrmjmwBrxb+ZxMT+aPqp2MT1ZxRIVnMrRZa22+ZIh4R0UISDE79LPOZTERERDSf0s1Teh3blVo/y058slrFlxbZOo/ZnNuklSbTaKLVIGU0Ak6n3HoQ6SH7OKOQWhggSrQAsYmKiIiIqNYEg0AiUXwZvZqfZEaKzdVjyBRxsuUb6UbzQ7aAJzPasdLJJlEZjaWPDqWFSWt6glp43xAR6Sl7Cr98J+2IiIiIKkm6EUivY7vZTAsYi8k1ocs0k6TvL19NSKbRRKvRSlXlpxUk0oNMHU+vaTmJqKzYREVERERUaywWwKCxm6fV/CQ71Uk5kqgKjbyTjQpPyz6BRvNL9nWjlahWDWSTqGIxNr+QHK3Rt9zWERHlyt4vLsdU1ERERESzkW4E0uvYLk8NsGjVL3vQotEoV5vRGuyTZjbnT4uSaTRhog9VGpnatM839+tBRLpjExURERFRrZGZEqyakqgKNZZwdFn1kn3d1EITlcMhioRaLBZOw0ZytIrTWk20REQLTTg89bPsCT4iIiKi+aQo+h3byUyVly17CnnZAYxag33SYrH8qVUyt9d6HorCQUVUXvG49jJ2+9yvBxHp7oo+gR9++GEsW7YMNpsN27Ztw759+4ou/8Mf/hDr1q2DzWbDpk2b8OSTT+Zcr6oqPv3pT6O9vR12ux07duzAmTNnrmTViIiIiCiR0G6k0qv5yePR536KKVQAyTdyrRiZA1sqD9kmvlpIZgqHtafXBERaVXahkqgQreJydrMAEREBbvfUz7In+IiIiIjmi9ksmpf0OrYrNcEpu1kpmZSracg2qhuNuUlXaTKNJlrPI5msjToSVQ+HQ3sZmfcPEVWckpuoHnvsMTzwwAP4zGc+gwMHDmDLli3YuXMnBgcH8y7/yiuv4IMf/CB+//d/HwcPHsS9996Le++9F0ePHs0s88UvfhH/+q//iq997WvYu3cvnE4ndu7ciTCLv0RERESls9m0E3z0an4KBPS5n2IKjbwrdToWmQNbKg/ZJr5yNOnNNZNJbnpMJlGRrLq64tdnNwsQEVFu4xSTqIiIiKjShUKijqBXjaDUNPrsZiWzWdQrtMg2qqtq/qYSmUYTrRqR0cjjYSovmcGQHNRLVJVKbqL60pe+hI997GO47777sGHDBnzta1+Dw+HAI488knf5f/mXf8Fdd92FT37yk1i/fj0+//nP49prr8W///u/AxApVF/5ylfw13/917jnnnuwefNmfOc730Fvby9+8pOf5L3PSCQCv9+f80VEREREKcGgdvFBr8QbmULKbBVqrPd6S7sf7jNWDtkTmGNjc7oaFYVJVCRLa7ARU1aIiHJlpylwG0lERESVrr5eNBv5fPrcX6n7P9n7TpGI+NIy20FwWon6QP5pALMlEvr9zYhkyNQ3OaiXqCqVNDlsNBrF/v378eCDD2YuMxgM2LFjB/bs2ZP3Nnv27MEDDzyQc9nOnTszDVIXLlxAf38/duzYkbne4/Fg27Zt2LNnDz7wgQ/MuM+HHnoIn/3sZ0tZdaoUr70mdsBGRkQXfTQq0iWMRtFd7/UC/f1AW9vU97Ex8SGTnprIYhEnmBobp5YZHASamsTJ0XQUaDwuIkDHx8V16WWHhkTnfSAwdeI3GhUjukdHgebmqWWHh8XOXzg8lSIQDotu9uFhoKVlalk+Jz4nPic+Jz4nPqdKeU6NjcDy5eL+RkenPnsbGsTjOhxinY4dE48xvREqkcCN2U1YBw6I9Y/FxAi0bMkksGGDWG+zWaxLNCr+jmNjU4+d/u52i2hto1F8TU6KA87s9Zy+r2A2i3UwmcS6+v3i/xaPA1ddNfWcYjFRZLLZxDLT76+lBXj5ZfF7NCqKQM3NwMWLwMaN4u+xYQNw/DiwYgXQ2zs16m9iAujoAM6fn1o2/X3ZMvH/s1rF+o2MiMvOnJm6v/T3zk6xvkajmI6wrw9YswY4eXLq/tatA06fBtrbpxri6uuB7u6p+0kvu3q1WP9qe07BoLgs3//J6516zxgM4n+WfuzVq4FLl8T7YHRULGM2T70menrE8zxzRnzv6RGX+3zivhwO8bpsbxd/o1WrgLNnxf339op1CATE6yj9flq0SPyNVq8Gzp0DliwBBgbE9dGoeN2ltxFLloj7W7MGuHBB/H37+4FNm8Rr3WqdisJ3OMR6pZ+3xyPWobdX/M1DIbFM+nskMvP9F42K1/v0ZaPR3Gkw09sIu33msvH4VNqbqk5t97KXCYXEbZPJqVStREKsz/Rlw+GZ25R4fP6eE4CtiTFg/1DtPKdVq8TvhbZ74+PAqVPi94YG8VnU0iJez16vuM/0OsZiU++LpqapZUdHxWs8/TmTfh4ul7if5uapZcfGxGdVLCaeg8EwtW1PL5P+7vOJdU0mxXqbzeI95/VOLTM0NPVeTP/d4/Gp58jnxOfE58TnVOpzGh8Xn8mNjUBXl7j++HHxeX3+vLhubEx8Bjoc4nZLl4r9ien7XC0tYj8mmRSf3f39Yr/79OmpfaNVq8R+m9ebu3/W3S2uO3UKWL9e7CstX55//+zixan9qXXrxLp0dop1t9vF32ZsDFi8WDyH9ev5nPic+Jz4nPic+Jz4nGrlOZ09K26TTAIvvDD1mOnnsmyZqEvY7WJfbGxsqh6Rvp/0c1m0SOx/rVqVU494T6wfr+zzYWO9Cdi0VtQl6uvFPlZXl9i/6u0V9ZOVK8XftVh9b2QEOHJkZpp8uq6XrinGYuL+PJ7cWqDLJZ5r+v+U3t8zGMR+ns8nbtPRkVs3yq6xpP8Pu3dP/e3TrxGPRywbDIrnlK8Wtny5+J84neJ+sv+u02tsS5aI9TebxfoNDYnnderU1LLp/1dHR26t6fJl8f85cWJq2fTrqblZ7GNHo2L/+9KlmevJ51Q5z8lmE4+RXd9Lf0+/n8bHxfu/p2fqsVetEu+z9DkGk0nc1/j4VM1y9WqxbVixQqxL+hwDMLNmuWaNeL8vWybqsvX1Yv3i8Zk1y7VrRX1z8WKxnXO5xHtoclI8Rm/v1HYpu745PCy2OQaDeF7pOiyf09RzGhoCrr0WVBsUVVVV2YV7e3uxaNEivPLKK9i+fXvm8k996lN44YUXsHfv3hm3sVgsePTRR/HBD34wc9lXv/pVfPazn8XAwABeeeUV3Hzzzejt7UV7e3tmmfe9731QFAWPPfbYjPuMRCKIZHU++/1+dHZ2wufzwc2oRiIiIiJdnOqfQLPLiganZb5XhYioZCOBCEaCUaxp5TSJRERERERERGmqquLIZR9WtdTBYSkpb4OIiKgq+f1+eDweqZ6iqvxktFqtsKbTHIiIiIhoTqxtY+MBEVWvxjorGut43EhERERERESUTVEUbF5cP9+rQUREVJEM2otMaWpqgtFoxMDAQM7lAwMDaGtry3ubtra2osunv5dyn0RERERERERERERERERERERERHopqYnKYrFg69at2LVrV+ayZDKJXbt25Uzvl2379u05ywPAs88+m1l++fLlaGtry1nG7/dj7969Be+TiIiIiIiIiIiIiIiIiIiIiIhILyVP5/fAAw/gd3/3d3HdddfhhhtuwFe+8hUEg0Hcd999AIAPf/jDWLRoER566CEAwJ/92Z/htttuwz//8z/j7rvvxve//328/vrr+M///E8AIjLyE5/4BP7u7/4Oq1evxvLly/E3f/M36OjowL333qvfMyUiIiKi/6+9e4/Jsv7/OP4COasIaoCoeCjTUvKYDrVa00mOZWZLc2SubKbhBHNoJ7Wtlae+WZp56I90SzPd1NI8jDxg5hlERRm6aeAJqRQxT6D3+/vHb1x1pxHffsKF3s/Hdm9cn8971/2++eO1i+t+7wIAAAAAAAAAAADAbfzPQ1RDhgzRL7/8osmTJ6uoqEidOnXShg0bFB0dLUkqLCyUv/8fD7jq2bOnli5dqnfffVdvv/222rRpo9WrV6tDhw5OzYQJE3T58mWNHDlSJSUl6t27tzZs2KCQkJAq9WRmkv7vCVYAAAAAAAAAAAAAAAAAUDFLVDFbVBk/q0pVLXfq1Ck1b97c7TYAAAAAAAAAAAAAAAAA1DInT55Us2bNKq25J4aoPB6Pzpw5o/r168vPz8/tdvA3SktL1bx5c508eVLh4eFutwPAh5A/ANxC/gBwC/kDwA1kDwC3kD8A3EL+AHAL+QNUnZnp0qVLio2N9frPerfzP/87v9rI39//H6fFUHuEh4cT5ABcQf4AcAv5A8At5A8AN5A9ANxC/gBwC/kDwC3kD1A1DRo0qFJd5SNWAAAAAAAAAAAAAAAAAHCPY4gKAAAAAAAAAAAAAAAAgE9jiAo1Jjg4WFOmTFFwcLDbrQDwMeQPALeQPwDcQv4AcAPZA8At5A8At5A/ANxC/gDVw8/MzO0mAAAAAAAAAAAAAAAAAMAtPIkKAAAAAAAAAAAAAAAAgE9jiAoAAAAAAAAAAAAAAACAT2OICgAAAAAAAAAAAAAAAIBPY4gKAAAAAAAAAAAAAAAAgE9jiAoAAAAAAAAAAAAAAACAT2OICjVm7ty5atmypUJCQtSjRw/t2bPH7ZYA1FJTp07Vo48+qvr16ysqKkoDBw5Ufn6+V821a9eUkpKiRo0aqV69enruued07tw5r5rCwkIlJSUpLCxMUVFRSk9P140bN7xqtm7dqi5duig4OFgPPPCAFi1adEs/5Bfgu6ZNmyY/Pz+lpaU5a+QPgOpy+vRpvfjii2rUqJFCQ0MVHx+vffv2OftmpsmTJ6tJkyYKDQ1V3759dezYMa9znD9/XsnJyQoPD1dERIRGjBih33//3avm4MGDeuyxxxQSEqLmzZtrxowZt/SyYsUKtWvXTiEhIYqPj9e6deuq50MDcNXNmzc1adIktWrVSqGhobr//vv1/vvvy8ycGrIHwJ2wbds2Pf3004qNjZWfn59Wr17ttV+bsqYqvQC4e1SWP+Xl5Zo4caLi4+NVt25dxcbG6qWXXtKZM2e8zkH+APg3/un6589GjRolPz8/ffLJJ17r5A9Q8xiiQo345ptv9MYbb2jKlCnKzs5Wx44dlZiYqOLiYrdbA1ALZWZmKiUlRbt27VJGRobKy8vVr18/Xb582akZN26c1qxZoxUrVigzM1NnzpzRoEGDnP2bN28qKSlJZWVl2rFjhxYvXqxFixZp8uTJTs2JEyeUlJSkJ598Ujk5OUpLS9Orr76qjRs3OjXkF+C79u7dqwULFuiRRx7xWid/AFSHCxcuqFevXgoMDNT69et15MgR/ec//1FkZKRTM2PGDM2ePVvz58/X7t27VbduXSUmJuratWtOTXJysg4fPqyMjAytXbtW27Zt08iRI5390tJS9evXTy1atFBWVpZmzpyp9957TwsXLnRqduzYoaFDh2rEiBHav3+/Bg4cqIEDByo3N7dmfhkAasz06dM1b948ffbZZ8rLy9P06dM1Y8YMzZkzx6khewDcCZcvX1bHjh01d+7c2+7XpqypSi8A7h6V5c+VK1eUnZ2tSZMmKTs7WytXrlR+fr4GDBjgVUf+APg3/un6p8KqVau0a9cuxcbG3rJH/gAuMKAGdO/e3VJSUpzjmzdvWmxsrE2dOtXFrgDcLYqLi02SZWZmmplZSUmJBQYG2ooVK5yavLw8k2Q7d+40M7N169aZv7+/FRUVOTXz5s2z8PBwu379upmZTZgwwdq3b+/1XkOGDLHExETnmPwCfNOlS5esTZs2lpGRYU888YSlpqaaGfkDoPpMnDjRevfu/bf7Ho/HYmJibObMmc5aSUmJBQcH29dff21mZkeOHDFJtnfvXqdm/fr15ufnZ6dPnzYzs88//9wiIyOdPKp477Zt2zrHgwcPtqSkJK/379Gjh7322mv/vw8JoNZJSkqyV155xWtt0KBBlpycbGZkD4DqIclWrVrlHNemrKlKLwDuXn/Nn9vZs2ePSbKCggIzI38A3Bl/lz+nTp2ypk2bWm5urrVo0cJmzZrl7JE/gDt4EhWqXVlZmbKystS3b19nzd/fX3379tXOnTtd7AzA3eLixYuSpIYNG0qSsrKyVF5e7pUr7dq1U1xcnJMrO3fuVHx8vKKjo52axMRElZaW6vDhw07Nn89RUVNxDvIL8F0pKSlKSkq6JSPIHwDV5bvvvlO3bt30/PPPKyoqSp07d9YXX3zh7J84cUJFRUVeudCgQQP16NHDK38iIiLUrVs3p6Zv377y9/fX7t27nZrHH39cQUFBTk1iYqLy8/N14cIFp6ayjAJw7+jZs6c2bdqko0ePSpIOHDig7du3q3///pLIHgA1ozZlTVV6AXBvu3jxovz8/BQRESGJ/AFQfTwej4YNG6b09HS1b9/+ln3yB3AHQ1Sodr/++qtu3rzp9UWiJEVHR6uoqMilrgDcLTwej9LS0tSrVy916NBBklRUVKSgoCDnD9kKf86VoqKi2+ZOxV5lNaWlpbp69Sr5BfioZcuWKTs7W1OnTr1lj/wBUF2OHz+uefPmqU2bNtq4caNGjx6tsWPHavHixZL+yI/KcqGoqEhRUVFe+wEBAWrYsOEdySjyB7j3vPnmm3rhhRfUrl07BQYGqnPnzkpLS1NycrIksgdAzahNWVOVXgDcu65du6aJEydq6NChCg8Pl0T+AKg+06dPV0BAgMaOHXvbffIHcEeA2w0AAFCZlJQU5ebmavv27W63AsAHnDx5UqmpqcrIyFBISIjb7QDwIR6PR926ddOHH34oSercubNyc3M1f/58DR8+3OXuANyrli9friVLlmjp0qVq3769cnJylJaWptjYWLIHAAD4lPLycg0ePFhmpnnz5rndDoB7XFZWlj799FNlZ2fLz8/P7XYA/AlPokK1a9y4serUqaNz5855rZ87d04xMTEudQXgbjBmzBitXbtWW7ZsUbNmzZz1mJgYlZWVqaSkxKv+z7kSExNz29yp2KusJjw8XKGhoeQX4IOysrJUXFysLl26KCAgQAEBAcrMzNTs2bMVEBCg6Oho8gdAtWjSpIkefvhhr7WHHnpIhYWFkv7Ij8pyISYmRsXFxV77N27c0Pnz5+9IRpE/wL0nPT3deRpVfHy8hg0bpnHjxjlP5CR7ANSE2pQ1VekFwL2nYoCqoKBAGRkZzlOoJPIHQPX48ccfVVxcrLi4OOc+dEFBgcaPH6+WLVtKIn8AtzBEhWoXFBSkrl27atOmTc6ax+PRpk2blJCQ4GJnAGorM9OYMWO0atUqbd68Wa1atfLa79q1qwIDA71yJT8/X4WFhU6uJCQk6NChQ14XmBV/AFd8QZmQkOB1joqainOQX4Dv6dOnjw4dOqScnBzn1a1bNyUnJzs/kz8AqkOvXr2Un5/vtXb06FG1aNFCktSqVSvFxMR45UJpaal2797tlT8lJSXKyspyajZv3iyPx6MePXo4Ndu2bVN5eblTk5GRobZt2yoyMtKpqSyjANw7rly5In9/79uDderUkcfjkUT2AKgZtSlrqtILgHtLxQDVsWPH9MMPP6hRo0Ze++QPgOowbNgwHTx40Os+dGxsrNLT07Vx40ZJ5A/gGgNqwLJlyyw4ONgWLVpkR44csZEjR1pERIQVFRW53RqAWmj06NHWoEED27p1q509e9Z5XblyxakZNWqUxcXF2ebNm23fvn2WkJBgCQkJzv6NGzesQ4cO1q9fP8vJybENGzbYfffdZ2+99ZZTc/z4cQsLC7P09HTLy8uzuXPnWp06dWzDhg1ODfkF4IknnrDU1FTnmPwBUB327NljAQEB9sEHH9ixY8dsyZIlFhYWZl999ZVTM23aNIuIiLBvv/3WDh48aM8884y1atXKrl696tQ89dRT1rlzZ9u9e7dt377d2rRpY0OHDnX2S0pKLDo62oYNG2a5ubm2bNkyCwsLswULFjg1P/30kwUEBNhHH31keXl5NmXKFAsMDLRDhw7VzC8DQI0ZPny4NW3a1NauXWsnTpywlStXWuPGjW3ChAlODdkD4E64dOmS7d+/3/bv32+S7OOPP7b9+/dbQUGBmdWurKlKLwDuHpXlT1lZmQ0YMMCaNWtmOTk5Xveir1+/7pyD/AHwb/zT9c9ftWjRwmbNmuW1Rv4ANY8hKtSYOXPmWFxcnAUFBVn37t1t165dbrcEoJaSdNvXl19+6dRcvXrVXn/9dYuMjLSwsDB79tln7ezZs17n+fnnn61///4WGhpqjRs3tvHjx1t5eblXzZYtW6xTp04WFBRkrVu39nqPCuQX4Nv+OkRF/gCoLmvWrLEOHTpYcHCwtWvXzhYuXOi17/F4bNKkSRYdHW3BwcHWp08fy8/P96r57bffbOjQoVavXj0LDw+3l19+2S5duuRVc+DAAevdu7cFBwdb06ZNbdq0abf0snz5cnvwwQctKCjI2rdvb99///2d/8AAXFdaWmqpqakWFxdnISEh1rp1a3vnnXe8vjQkewDcCVu2bLntvZ7hw4ebWe3Kmqr0AuDuUVn+nDhx4m/vRW/ZssU5B/kD4N/4p+ufv7rdEBX5A9Q8PzOzmnjiFQAAAAAAAAAAAAAAAADURv5uNwAAAAAAAAAAAAAAAAAAbmKICgAAAAAAAAAAAAAAAIBPY4gKAAAAAAAAAAAAAAAAgE9jiAoAAAAAAAAAAAAAAACAT2OICgAAAAAAAAAAAAAAAIBPY4gKAAAAAAAAAAAAAAAAgE9jiAoAAAAAAAAAAAAAAACAT2OICgAAAAAAAAAAAAAAAIBPY4gKAAAAAAAAAAAAAAAAgE9jiAoAAAAAAAAAAAAAAACAT2OICgAAAAAAAAAAAAAAAIBP+y9GDjCsNLrJVwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 3000x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(test[:, 3])\n",
    "plt.fill_between(np.arange(test_labels.shape[0]), test_labels, color='red', alpha=0.3, linestyle='dashed', linewidth=0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PolyCollection at 0x7fbdf641afd0>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAACVEAAADFCAYAAABXNSDmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNSElEQVR4nO3df3Rc9X3n/9ed3xpJI8kWliwjsMHEFDCmQHCchLQpOsiU0y/ebBvDZgvxSaChaU6JU0jck9hJ03NMSJuTzdYpbRoK+W43EPY0ZJtknbIKhm+CMcFACD/LD4NtbMm2LGmkkeb35/vH/TEzkmwsYc3VjJ6Pwxxp7nzunfeVxb1X83ndz8cyxhgBAAAAAAAAAAAAAAAAwAIV8LsAAAAAAAAAAAAAAAAAAPATISoAAAAAAAAAAAAAAAAACxohKgAAAAAAAAAAAAAAAAALGiEqAAAAAAAAAAAAAAAAAAsaISoAAAAAAAAAAAAAAAAACxohKgAAAAAAAAAAAAAAAAALGiEqAAAAAAAAAAAAAAAAAAtayO8CTodisahDhw6publZlmX5XQ4AAAAAAAAAAAAAAAAAnxljNDo6qq6uLgUCJx9rqi5CVIcOHVJ3d7ffZQAAAAAAAAAAAAAAAACYZw4cOKAzzzzzpG3qIkTV3Nwsyd7hRCLhczUAAAAAAAAAAAAAAAAA/JZMJtXd3e1li06mLkJU7hR+iUSCEBUAAAAAAAAAAAAAAAAAj5stOpmTT/YHAAAAAAAAAAAAAAAAAHVuxiGqxx57TH/wB3+grq4uWZalhx566B3X2bVrly699FJFo1GtXLlS995775Q2O3bs0PLlyxWLxbR27Vo9+eSTMy0NAAAAAAAAAAAAAAAAAGZsxiGqVCqlNWvWaMeOHafUft++fbr22mv14Q9/WM8++6xuu+02ffKTn9TPfvYzr80DDzygzZs3a9u2bXr66ae1Zs0a9fb26siRIzMtDwAAAAAAAAAAAAAAAABmxDLGmFmvbFn64Q9/qA0bNpywzec//3n95Cc/0fPPP+8tu/766zU8PKydO3dKktauXav3vve9+ru/+ztJUrFYVHd3tz7zmc/oC1/4wpRtZjIZZTIZ73kymVR3d7dGRkaUSCRmuzsAAAAAAAAAAAAAAAAA6kQymVRLS8spZYpCc13M7t271dPTU7Gst7dXt912myQpm81q79692rJli/d6IBBQT0+Pdu/ePe02t2/frq985StzVjMAAKgzjz0mDQ5Kra3S8LDU1CRNTEihkGRZUjZrL0smS23cr42NUiYjBQJ2+4kJqbm5sm1LizQyIsXjUi5nv2c4LI2PT91eIiGNjkqxmFQsSoWCFI1KqdT0bcfGpEhEMkbK5+33GB2d2pZ9koJB6aqrTvdvDwAAAAAAAAAAABaAGU/nN1P9/f3q6OioWNbR0aFkMqmJiQkdO3ZMhUJh2jb9/f3TbnPLli0aGRnxHgcOHJiz+gEAQB0YHLSDOGNj9td02g7lFAp2iCcQsMNB5W3cr+7ol8WiHeIJBqe2TaXsr9msHQwyxv5+uu2Nj9vbyOXs95fs9zhR20DArrFQsGt2Q0WT27JPUkND9X+3AAAAAAAAAAAAUBfmfCSquRCNRhWNRv0uAwAA1Iq2NnukI9S3ZNLvCgAAAAAAAAAAAFCj5jxE1dnZqYGBgYplAwMDSiQSamhoUDAYVDAYnLZNZ2fnXJcHAAAWgqEhe7Qi1LdYzO8KAAAAAAAAAAAAUKPmfDq/devWqa+vr2LZww8/rHXr1kmSIpGILrvssoo2xWJRfX19XhsAAIB3pa3N7wpQDe5UggAAAAAAAAAAAMAMzThENTY2pmeffVbPPvusJGnfvn169tlntX//fknSli1bdOONN3rtP/WpT+mNN97QHXfcoZdfflnf/va39YMf/ECf/exnvTabN2/Wd77zHd1333166aWXdOuttyqVSmnTpk3vcvcAAABkj0SF+lcs+l0BAAAAAAAAAAAAatSM57V56qmn9OEPf9h7vnnzZknSTTfdpHvvvVeHDx/2AlWStGLFCv3kJz/RZz/7Wf23//bfdOaZZ+qf/umf1Nvb67XZuHGjjh49qq1bt6q/v1+XXHKJdu7cqY6OjnezbwAAALZEQhof97sKzLVo1O8KAAAAAAAAAAAAUKMsY4zxu4h3K5lMqqWlRSMjI0okEn6XAwAA5pt/+ze/K0A1BIPS7/++31UAAAAAAAAAAABgnphJpmjG0/kBAADUnNCMB99ELWpr87sCAAAAAAAAAAAA1ChCVAAAAKgPQ0N+VwAAAAAAAAAAAIAaxbAMqJpUJq+CMTJGkpGM7O+NJGOMis4yectKbYruepOWG5W/5rYtLfPaOd8Xjf1e3vbLvj+VdWSkQtGoaErL3ffzHsXStorl++WwZMmyJEuSZZWWOf/Zzy3Le728jfv9lDbOmpYlBSxLly9vU3tT9PT/IwJArcrn/a4A1cBIVAAAAAAA1BRT9ln65H6BaT+jd9pM18dQvr7beMo2y95T5e2970vbKhZL27S3VVmXKX3sP+17lL+/yl7z2k+uWe5+Tf8e0ynvM3C1xSO6sCsha7oXAQAAcFKEqFA1V/3to+pPpv0uY8H4w8vO1AdWLtaHVy1RazzidzkA4K94XBof97sKzDVGogIAAABQR8rDJe6NnJL9tVAsu5lTlTepThs+MWU3kpa1l0rbzhdMxXreTadlgZLJ7+Fuz25busl18vYnv3f5Ta1Tl5+47ZRlqrwBtzz04r6uSe3c792wypR1yn6Wbu2S/fMu3fRbCuqUh39K7zn1pt3Kn0flOk6Z9nsWK3/G091Q7O7X1H/zyt+dipuUnbpO9Pui6ZarbP8nh37KtimrctvT/TymvzEac6U5GtIfrztbqzqbdfnyRepqiRGqAgAAOAWEqFA1p3J9XhqhqXwkpsoRlyranOD7gCVJ9ld3vYBV1m7ysknvFfDaVY4IZS+31wtYloJOu4BlKRCY+rolKRAobWPyH55S5d0t7tLJy0rtytaZdCeKkT1K1t637A7k/7X3oP7X3oOSpJvWna0v/z8X8kcSgIUrmZRCXPbUvUTC7woAAAAAX7jBh9II6qXnxgncFIwdzrC/lpbZr5983fKR2L12zraMMco725sc+Kkcxd0N4ZTCGPmiUb5QrGhjymrwQjbF6bfphUGK77C+qXzfQnHq65O/Tj8SfWn7k4M9xbLlU7cllYeVpnuv8vVK6wCYLbe/wP5+0qwOZTNFlPc5lLeVJYUCVsW6TouKmSbKZ5Bw+ye89580y0R534e7wuT+kPL2KtvedMr7D1xjmbwODk1oNJPXt3e97i1f1BjRB1a266rzl+jSs9p01uL4O/8QAQAAFiDLTHeVVWOSyaRaWlo0MjKiBJ1n81Y6V5g+CKVSgAnv3lgmrx//+pCeeGNQDz17yFsesOzRqT5y6Zl63zmLfawQAHzwyCPS2JjfVWCuhcPS+vV+VwGgitxO0LzzKBSMcsWi3SlcNAoFLAUDlkKBgIJBq+y5xd8fADCPFJ3jeLEsjGMf34sqFqVcoVix3HsYo0KxqHzB/b4U8MkXytuUzhfl71XevlDUNMuMFzgqf383DOSFkUwpQJQvOw8VygI77uultu56ldsqmlLYqSKw5Aak3LblgShGdEEZ93PXyTeJus8Dkz6P9W4QdW8a9W4IrXzNmrR++fbdG1nd1+Quk7u+/STg3tgaKH1GPLUu93lZ27LXyrerihtlS9uafHOt+5r78yn/GZxwO2W1lL827TJN+lmU1apJ7zU5yFP571Fep+X9DE52I/HUUNDU99M023HX1XTLKwI8U//NSmGf0u+GMWb6m6EtTVlu/1wqt+f9Prn7Ms3Pq7wmp3L6GU7gjaNjevjFAb1+dEy/enNI+46lprRpb4po7YrF+tuPrlEsHPShSgAAgOqZSaaIEBVQx4ZSWf3J/7tXT755vGJ5Wzys6y5ZphuuOEurOpt9qg4A5pZ7V3OuUFT2R/+mbMAeiSogqSEoNfL5UP1pbJR+7/f8rgKoWeXHzVzeKFso2t87j0y+qGy+qFzBHjEiW7A7rXPO99l80RtNIlewO77HswW747tglHPa5oulbbjLcs739jbt7UzentuB7m7P3c5sNISDWtXZrIvPbNFFXS1acUajzlvSxDTYAGpKsWgHRzP5onL5ymNnzjkulx+r3WPt5GN4zjvWlh3ni6Vjd6FY3sZep1AsvWYfq0uhJzd45C5z39cNMbnreCFYZxQiVEcwYI+sHgjI+WqHZtygS9BZbjlhmmDADikEndcDATsAEXQCycGy78NBa8oo7W7AovTc2Z4T1AkGAgoFStutXMdZFqgM8wSdZEbAyUm4+1FeZ0UwKDDNyPFW5XtaZfVNqTlQqseSKkJG5W0tq7JdKWQ0fVCoPLQkaUo9btjE+7kFKkNJ1pSfF+ERANNLpnN65OUj+uVrx/T820m9eDhZ8frH1p6ldecu1jUXLfWOSQAAAPWEEBWAChPZgh741X79+LnDesqZ7s91TnujLj27TRd1JXTW4rjOW9KsM9sa+NAFwIwUi8brXM+WdbZPZAulTvh8Uel8QZlcqbM9VzDK5gsV62bz9rqlzvqyr2WdP17HkNPWez1f6og/EUtGK2LS6ibpoiajVXFpRYO0LCrxWVENI0SFecwdhSKTLyqdK5QdB8uDREaZfGFKUKn8OJf3gkalDvHScdZeNpErVGzXXSftLHc7u93Akn0sLp70uFlrQk5nsDvax6nqaonpomUtuvjMFv3e+R06v7NZAU4MAFQKmk7kKq9n3etd97p0Ildwgkyl69t0rvR6tlDwjuvetWzZ8di9js5NOk942yq7vl4owSN3BMFI0B5VMFgW7ql4lC13QzmhijYBL/DjPtwAixcm8kJFqlg2ebvua27oyN2O+7WyXeXr3ns6wZzgpHUnL3cDR+XBplK4Z9J7eEGnshGFJgWgAAAYGc9p8w+eVd/LRyqWh4OWPriyXWctiqu9KaoPnteuNWe2cv4AAAA1jxAVgBM6NpbR/U/u1//+9SH9x8D0U1vFI0Gde0aTuhc1aGlLg85ojqo5FlJjJKRYOKjmWEiLmyLqbourMRqq8h4AmI4xxuugSecKSufsYJLdwWN39Iw7HS4ZJ8iU8QJIpRDTRK4wpSMonS8onStOCS25HUS10vEekH3JU9SJP/hJBI3WNEvnx6VVjUYfaJGWRqtVId61SETq7fW7CsxjbuAz4xzX0rmCd4wbz+YrOrTTuYIm3ONpzj7mueu6x8G0exwsO/6WB0LLj5HZQrEmp9mJhAKKBAMKBy2FggFFneehoKVwMKBQMKBI0FIkFLCfB0ptwwFLsUiwYv2wszzkLAs7y0JBy2nnbtuasr1QwCq9HrC/uuu5r7ud5eU3BJRP+VdwAmT7j4/r1weH9Ur/qF4/Oqa3Bsf19vDElP1vaQjrfGfEqgu7WnRBV0JnLYoz3QXgEzdc6l7LTj4mp3P2ssnXtO7rk6+Py6+Hx7P2ozy8727TDS3N9+N4MOAcPwMBhd3jd8g51gbs70OB0nHcPYaHAqXjurvO5ONvyFnfO/46x3L3PQOWvX4wYFVOpRooHdPLg0ju64GAvON4RVDJKgWRAADA3Dg0PKH/79WjeuTlo9r5Qv+0bQKWFAsHFQsHFQ0FtLQlpo5ETA2RoOKRoOKRkOKRoBY1RtSZiKl7UVxLW2KM8gsAAOYVQlQATslAMq1fvXlczx0c0b5jKb1xdEz7jqVmdDdrcyykM9viWtbaoDPb7MfSlgYtbY1pWWuD2puiDAGMBccYe2qLdL6gdNbpqHc6ZtwO9sykDvp0rqCJrNtJX/ACTW7nvdtJ5N75ni4LALidP/NJJBhQJBRQg9N57nbCR8NOB7zT2R52Xos6D7fjxm4X9NpFQnane/l6YafTvtTO8rbhreNsL/RIn8LZjCTJGGkgKz03Jj0/ZunFcemNcWl/RsqbqcerpRGjlXHpPXHp/LjRbzVKKxukGP3n809rq3TllX5XgVkqFu3j5lgmr4lsKdjkHjtT2YLGM3nv+Okud4+VqUxhUiiqdHwdzxa84Od8EZp0TIu4ndmTjodup3Y0VNYh7nV8VwaRIiG7o9s99k4OKsXCpeOn22EemeaY6Xa4hyaFkerd8HhWLx0e1d63juunv+nXS/3JaQMTwYClc89oVEfC7jzoaompvTmqpmhIiVhY7c1RLW6MaHFTRPEINxyg/uUK9jE34xyTU5lSiGk8m1c6b4+eNJ7Na7zsWrY8xJQtFDWeyXvL03l7ffuYX7punsnIcnPNvcZ1OxTda9xoOKhYqHS8tY+/9vWqe00cCQUUc5+7IdSyUGokGLTXDQUUDVZeO8fClc/dY3kkGCBwBAAAZi2dK+jpt4b06pExHR5J64k3BvX82yPKz/L6qyEc1JKEfXN2UzSk5lhYiVhYi5siWtIc1eKmiFoa7GWN0ZCWNEfVFo9wPQPAd8YYFY1UdG7KM0YqGKOiMTLF0vfF4tR2Rfe1sm0Ui/ZXYyQje7ndvqyNKa1fuS27bfk2jff+qljP3dbk+qWykXHdqbmnGdW2e1FcK5c0qTkaWlCfB2LhIEQFYNbSuYL2HUvprcFxHRqeUH8yraOjGY1l8hrP2p2aqUxBh0cmlEzn33F7oYClJc1RdbTEtLQlpjOaolqSiGlxY0RLWxvUkYhqSXNMbfEwJ2VUhTsKyWgmV9YxU+p8tzt+7M6ejNv543x1vy/vlC8f9WkiW+rM97N/Z/IdYm6HTkM4qGgo6AWZ3PBReZtYOOh1vnsdQaGg930pDBV0tlfq8Hc7h+Zlp/v//t/SO9SUKUpPj0qvj0svpCztHpHeTJ94nUUho2VRe6Sqjoh0RsSoLSRFAlLEkqIBKR6UmoPSGRFpcVhqJHg1t4JB6fd/3+8q6l6xaJTK5r1O8vFsXqPpvBPyLGgsU9CEE35KZfJOm4KGJ3JOJ7p7XM07nexFjaZzylQ54BQMWIo5xy732BeddJxritrHzZgT7Iyd4LgXLX9e1tldGQi1yjrOg3wwXAPSuYJePJzUC4eSemb/kP5jYFT7jqaUyhZOeRvN0ZA6W2LqbInpjOaozmi2r307ElG1N7mPiJpjYW48QFVMZAtKOX/XjUzk7GN1Nq+xtP33XipT8AKsyXRO4xk7nJrKuNfCee+6OJUtjfbkB/c4HnWOvbFweaApqHi0LMw/6Vp4ugBULBxUUzRUFlCy7PNDOFgRNHWvpefd9S4AAMBpli8UNZjKOuF3+/rv7aEJHU9lnOtI+2/7sUxBx1MZHRpOa//xcY1M5Gb1ftFQQJ1OP8KS5pgaoyElYiE1RkNqCAfVGA2pNW4HrxINdjirpcEOYXF9hoWsWDQqOIGZojMNeaFgf3WfF53Rud12FQ9T+XrRCQoVikUViqUQj7f9QuV2vGXldTgBI2/bZcGjghP+yTvbd0cQLziBoNL3pRHF82U1lNdTMPJqL06znfKwU/k2i2bqz60UQvL7X9RfzdGQ2pvtz6va4s6jMaKORFSXntWmNd2tfpcIzAohKgBVkUzn1D+S1oHj9vQnbw9P6O2hCTt8NZLWwGjmlO8UDgctO0zVGFZrQ0SLnLv3FzdGtKQ5pkRDWGc0R5SIhdXSEFZrPKJIKDDHewi/FIvGCzNNOMEmu2On1GE/7oaayjrp3WDTuHOnu/v6hDMNx1gmp3Suup085YGmhnDQuXO81FkTj9gd97FQUDH3a7jUqROPBCsCTw1hu+PH7fCxnwfLOoLszh0+NJjkpz+VCqfe6e0ayUsvp6T/GJdeHrf0wpj0YkrKTjNi1aloCBgtCkvtZY+2sLQobC9vC0mtIXt5S0hKhOzfIZyi9nZp3Tq/q5hXCkWj8WxeyXTeGfGuoFG3ozxrH1sncqUPPSeyeY1m8kpl7OPsaDrvdZqPZ0rH1LlkWXKOl/Zxsyka8jrG7e/t42CDc4x0j7GNETcIZR9HG5wpBWKhoBoiAW977gghoSDXEZg5Y4wOHJ/Qm4MpHRnNqH9kQvuPj2s0bYcJk+mcjiQzGhrPzigYaFlSW9y59nUCVmc02aGrRY0RdbbEdNaiuDpbYoqGSOQuNIWi0Vgmr9F0TskJ+/dswgk5jTnH7LG0ffxOTuQ1lskplSloNJPXuHM8TznXz3M5Ip973etO6dIQtoNM7vWtuzzqBVNL17iRYOm62L32jTnXzu5xPj4p7MpxHAAAYH4az+Z1JJnRsbGM93eS+3VwLKujo6XXRiZyGk3nNDQ+u+CVKxy0FI+EvGvFWDig5lhY8YgdvnI/M2iK2qGspmhIrfGINyJWe2NU7c2MJlwrvHCN+ygU7eBQ0ShXKHqvFYpG2bz7WtEL+rivvdO6XvioLLzjLnO3WShK2UJh2tfdcJEXbCpWhoAqty9nveIJ37si9FQWAqr9nv7aFLDsm3ssyx7dKWDZIztZlrxRnspfcz/nDzjTl7vLLWc7gWnau8/dqdDt5c57VGyjbL2AvZ4leTfseSNqTQqoFZyRrUbTeR04Pq7BVPYd99udvjUWDqirtUHdi+JqdD6jPbMtrpVLGtXSELGnfQ1zIynmD0JUAOaFQtHoyGhah4bTGkimdSRpB6uOOo+BZFqHhk9tRKvpNEdDamu0E9AtDXa4yr37JNEQUmtDRG1xO3DVGHX/WLLvVomF6Xw6Xdyp69zQk93B497JbnfkuKOQuB06E9mCRjM5LwA15owCNZbJKzlRndFIAmWd9BEnzBSP2Hc1NUSCXlip/LndERTywlDlnffu3euNkVBpxJIIgaZ5Y+dOKffuPoxxGWOHqw5mpP6sdCgjHclaOpqVkgV7RKtsUcoYKVWQknnpWE5KF2f+exBQKVzV4jzanIDVorBRS1BaFJaagnbgym2TCEmhhfhrVycjURWKRmPpvMay9jHRPbYm03Zn+JjzSDnH21S2oNF0zjuejqZzXph0LoOjwYCluHOMbIqFvGOq9+Gk873dYR5Ua0NYjdGgGpxjbWOkFB5NNIS8Y3A0xHREqA+j6ZwGkmkdHklrIJnRkdG0jo1m7evi0bTdeeB0HJwqy5LObGvQ2YsaddbiuLpaYupssUd37UjE1NoQVnMsrFiY64/5whijcWfUJ7fjKDlhh5+Gx+2vbsdR0gnjjTmdTPYjN6PRz05VNBRQazzsXLsGvWlWGiL29Ww8GlRzNKSmWMi73nVfd0Os7vWzG37iuhcAAACzlc0XdXjEvjn78Ehax8bs0a6SE7myEa/sa2g3lOXeSHA6NYSDzgjC9k0tHYmYlrU2qKu1QWcvjmt5e6OaovMjaGVMaZqxipGCirKDOGWj+JQHdsrDPG7QpyI8VChr44xGlCuUtZkUCnJHJcoVihWBpMkBJXs0oaI3qlC+LNSUc9qWB5jKa8rkCl5gyq0dpyYUKE3bFnSmcgsFA870bmXTunlTu5XaBr11SyGfUND5GrAUDAQUDLgBH7tdxXtNmjrOm1LOWb/UthQsKtVQWhYOlt7L3cbkWr2p6dwaAmXBJi+0ZAeMKuopCzHZgSjndatUv7sNN7jkrl+PUpm8+pNpHRvN6OhYRsPjOQ2lsjo+ntXTbw3p1wdHZrQ9dwCNYNm/iff7EpDikZA34pUbei2f6jURCynREFZrPOwFY8PcUIVZIkQFoKZk8gUdHc3oyGhGQ6msRiZyOjaW0fFUToNjZSfqcfu15ETuXU+VFgkGlGgIqS0eUVPM/mqfmEOKR9152u1HY8TuPHBP3IlY2O4kqPGRsIwxSueKSmXtPz5TTod8Mp337nRPZfI6nsp5I5YkJ+y73scyeTsElbFHKZmrKTzKg07NMaeDvazjpsHpvGmMlDrp7U57u5M+7o5S4nTSN0XtDiE3EFWvF7qYxkMP2QEbH43lpcGcHag6npMGstJQXhrKWRrMScfz0nBOGs5LR2cZunJZMmoK2oEqN2CVCEkNASkesJfHgvbIWI1Be3lj0H40BaWGoNQYsL/GnWkJa+J/l3kwElW+UPTupHRDpW7H+Fg6p5EJ97l9l6V3THVGE3GDp6dbOGh5odDmWLjsDsywN1pIYzSkxqjdId7shKLKj72N0aDi4ZB35yYhDeD0yOaLGp7IaihlXwP3j6Q1mMro2FhWR5JpDaayOuSM+nqqwchQwFLCucHAva5tKLsD2w2Au/+/ux9Suf9/e9e9DfaxYKH/v57O2dfBg6msF/ofmcjpuPPc7chJlQWjhlJZb2S/0/X5fiQU8D5AjDv/Vu4Hi43RoBKxsJpiIe843xyzw6uNkZB3fZxw/r7hOhgAAAD1oFA0ZdNT2yOvZgtF7/OWcSd8VT6jgft5zfBETkdHM0o6/RGnemNve1NEyxc3akV7o5a1NWhRY0TGqGJkokLRDg9l80Vl8kXlCkW7tnxRE7mCcoXK5W5IyQ0e5SYFjiZPp+ZOR4ZKISeoEQpYCgUDzldLYed7+7WAF+gotbXbeM8ntfFCQ8FSaMfdXiBgrxt2vg+VrxMsBYfc93mnEFAoWNpGxcOqrMcLDTkhpvLvvWX83YfTLJnO6bUjYxpL2593vHpkTEdHM8oXi0qm83rjaEr7B1NzcjOYKxy07D7DaEiLmiJa6txcuCgeUdyZ3jUacvoJw/ZnI63xsB3UitqjYzGy9cJEiApAXSsWjUYmchp2/rgZHs9p2AlYle7kzmt4PKvBVNYeFckdtSNbOG13KbhBrKZoSO1NUW80rERDuCycZXdeuZ1Y7h3ep2ue9nzBvjAZcTpyhlJZHU9lvWDUaDpXcdf7UMru4Bl3Ri3JFU7vKSASDKgpFvI6a+KRoFoawopHQoqGA2p29t3t9IlH7OduB11DxO78cQNSdNrhtOnrk8bH/a5iRrJFaShnB6pG8vaIVsN5O2yVzNvBq2FneTIvjRbsEFbqXYSvTsSSUdwJVTUF7VBVgxOucp83eWEs4wW2msvaNjnLYoHS89M+WtZpGokqnbOnSLLPL6VO8sGxjBc2TU7kdHzcPseknHOPe3fk6RIJ2cdNN8jknkPizl04ca+DPKRm91gaKQWA3VFCTtc5B4C/jDE6OprRG8dS2j84roND4zo4PKEjzihXA8mMRtPv/maDydzgTqNzPGptiCjREFJzNOxMg2EH1qOhoDdVcfkondFQwLuuc6fVdKdsq/ZxKZ0raGg8q+FxexoRO7yWVTJth56GJ+zjfnIip+EJ+++L4fHTM0pqOGh5ISd7ZD57hNzmqB1W8+6ydP5uSMRCXiDKvbmDqRwBAACAueN+vn50LKMjSXsmjYHRtA4Pp3VgaFxvHku962kHq8mynFGIrMrAUDAQmDak44Z8goGAglYphGMvc4JCwdL6FaMJBeS87gSX3PcpCwS5IaVw0A4pudsNBQLTBpnKA0/RsD3jg/taYFKbcNAdKYjPvoD5wBijTL6oY2P2TYLeFJaFUhC0YOzZGI6NZTTiDOAwWv45u9OvOzSe08h47rQO5hAJBbzBFmLhgBq8GWYCZZ9blW5AbIgEFAvZs9fYNx2Wbj50b0BucgbkILw4fxGiAoATMMZ4Iy0NeyNb5TUykfXuGk9l7GnnkhNu8MruLE86o4mcrqmRoqGANypAImZPMWh3iIfUELaDSO5FRa5glM7Z04C4Hftup/7p0ByzO+DdjnmvAydiT5nY5Ny57nXgR4JKNIS9UbqanCnuan10LtSxH/5QCs2PobbnWt7YYaqRvDRSsEfAGsnbUwtOFO2w1Vje0kRRGi9K4wXnUZTGCtJEwf5qL5vbC/6wZY+E1RKyR8FqdsJY7qhYcW90rFKIq9EZHasxaAey4mXLGha3KPihD3nbLxaNxrJ2x/igM9Lh4FhWw+NZDY1ndTyV08hE1llmj3iYPE3H+UZnijs7QGv/YdUcc4Ygjtkd5PbxtRSGckd/aYzazzmmApipYtFo3Jli2b62daa5yNh3ZY+l7dHuMrmC0vmiNzWoGwadyBW8aeRGJnJzOkWC5Yw46oauykfFc+8ajIUDznP7gyp7FLygN3VyQ9i+Xs66d3AXihoZt0eMGkxlvRsM3ODUuxnpz7KktnhECSfY1NIQVltjxAmW2c/j0ZAzpWJIrfGId+3sju7HB/oAAABA7TLGKDmR15uDKftxbFz9ybSGx7OlUI876pAz4lDE+dsmErS/DwcD3lTY7vNwMKBIyB0tyQ4EuaMolYeKvKnIyqYmc0cospwpysoDUfz9AaBeuKGsdM4eVXDCHTF8LKvDybSOJtM6Pp7VRLY0GuFEzv4szA1lDY3P7edcknTWorgeu+PDc/oemD1CVAAwh9whd0edudftk29WQ+OlE3EynfOm+XDbuMMEz8U0TY2RoFrjEbXGw1rkdMq3xksd8u5wlQnna6MztUuiIaw409phIXjkEWlszO8qao4xdvDKDVe5QavxQuXyVEEaK1gad74fddvm7a8TzrJ00X7kzdwdcwKWTssoLJYlb4RB97i6uDHiBKLsIFRb3B6NpdGZTskeidA+xjI3O4BaZ4zReLbgBffHMvYUGUPOKHzu6HupTF7pXMH7MMsOaRWVydvLJpwPuNLZgtL5wmkfCXWmQgHLG8a9LR5RW6N9jdzWaE/v7R7b3em+W+P2uaApGqITAgAAAAAAoAa5QayJbEHjuYL9GVbW/prKlm44dD+/yuSK3mv25152e3eWCncGIPtzMTu8ddGyhH78mSv93lWcwEwyRQtjSAYAOI0iIfsukZaG8KzWd+dpHxnPKZW1R75KpnPK5ApKZQresvFsXgHL8u48iYYC3pQfbY1hOzTlTB9IZz3wDoaHF8xIVKeTZdkjPcVPafagU+8UzxaNUk6oarRgT0c4VpBG86WgVqogpQqWUk5oK1UojZzljqrlBrtSBcnI7tieLkDVEA5qUWMpaNoaj2ix11lud5wvaox4HeaJhrCaoyECpgAWNMuy1OhMxXw65Qt2sGrC+bCqPGSVytrXwJl80Q5lZe3XMvmC0rmixjL2aIHpsg+2As60EVHnGt2+Vo6ovSmixU32MX+Rc3xf1BRRU4TjOwAAAAAAwEJiWZYzunlQbXOwffezK9QHehMBoMqCAcsesSQ2uxAWgFlobWUkqnkkErAfkrT0pC1PLZhljJQpGo3H4rrmaaOBZEaS9NQXe7ypnwAA80MoGFBzMKBmroUBAAAAAABQB6KhoKIh+iHqBSEqAABQ/xiJqq5ZlhQLSjGTVSQU9Za3N0VPshYAAAAAAAAAAABQwvxPAACg/sXjfleAamhq8rsCAAAAAAAAAAAA1ChCVAAAoP5ls35XgGpIJmXJ8rsKAAAAAAAAAAAA1CBCVAAAoP4FuORZENraZGT8rgIAAAAAAAAAAAA1iB5FAABQ/0IhvytANQwN+V0BAAAAAAAAAAAAatSsQlQ7duzQ8uXLFYvFtHbtWj355JMnbPu7v/u7sixryuPaa6/12nz84x+f8vr69etnUxoAAMBU4+N+V4BqaGtjOj8AAAAAAAAAAADMyoyHZXjggQe0efNm3X333Vq7dq2++c1vqre3V6+88oqWLFkypf2//uu/KpvNes8HBwe1Zs0a/dEf/VFFu/Xr1+uf//mfvefRaHSmpQEAAEyvpUVKpfyuAnNtaEhGDX5XAQAAAAAAAAAAgBo04xDVN77xDd18883atGmTJOnuu+/WT37yE91zzz36whe+MKX9okWLKp7ff//9isfjU0JU0WhUnZ2dp1RDJpNRJpPxnieTyZnuBgAAWEhGRpjSbyFoapJU8LsKAAAAAAAAAAAA1KAZTeeXzWa1d+9e9fT0lDYQCKinp0e7d+8+pW1897vf1fXXX6/GxsaK5bt27dKSJUu0atUq3XrrrRocHDzhNrZv366Wlhbv0d3dPZPdAAAAC01rq98VoBoyGabzAwAAAAAAAAAAwKzMKER17NgxFQoFdXR0VCzv6OhQf3//O67/5JNP6vnnn9cnP/nJiuXr16/X9773PfX19elrX/uaHn30UV1zzTUqFKYfSWDLli0aGRnxHgcOHJjJbgAAgIVmeNjvClANFgEqAAAAAAAAAAAAzE5V57X57ne/q9WrV+uKK66oWH799dd7369evVoXX3yxzj33XO3atUtXXXXVlO1Eo1FFo9E5rxcAANSJlhYplfK7Csy1YNDvCgAAAAAAAAAAAFCjZjQSVXt7u4LBoAYGBiqWDwwMqLOz86TrplIp3X///frEJz7xju9zzjnnqL29Xa+99tpMygMAAJjeyIjfFaAa0mkZGb+rAAAAAAAAAAAAQA2aUYgqEonosssuU19fn7esWCyqr69P69atO+m6Dz74oDKZjP7rf/2v7/g+Bw8e1ODgoJYuXTqT8gAAAKYXj/tdAaohkfC7AgAAAAAAAAAAANSoGYWoJGnz5s36zne+o/vuu08vvfSSbr31VqVSKW3atEmSdOONN2rLli1T1vvud7+rDRs2aPHixRXLx8bGdPvtt+uJJ57Qm2++qb6+Pl133XVauXKlent7Z7lbAAAAZXI5vytANYyMyJLldxUAAAAAAAAAAACoQaGZrrBx40YdPXpUW7duVX9/vy655BLt3LlTHR0dkqT9+/crEKjMZr3yyiv6xS9+oX//93+fsr1gMKjnnntO9913n4aHh9XV1aWrr75aX/3qVxWNRme5WwAAAGWKRckiXFP32tpklPa7CgAAAAAAAAAAANQgyxhj/C7i3Uomk2ppadHIyIgSTOMCAAAm+9nPpGzW7yow1wIBXflCgw4cn5AkvXnntT4XBAAAAAAAAAAAAD/NJFM04+n8AAAAak4q5XcFqIbWVqbzAwAAAAAAAAAAwKwQogIAAPWvtdXvClANw8MyqvlBVgEAAAAAAAAAAOADQlQAAKD+DQ/7XQGqobHR7woAAAAAAAAAAABQowhRAQCA+sdIVAtDJsN0fgAAAAAAAAAAAJgVQlQAAKD+MRIVAAAAAAAAAAAAgJMgRAUAAOpfIuF3BaiGSMTvCgAAAAAAAAAAAFCjCFEBAID6NzrqdwWohlRKRsbvKgAAAAAAAAAAAFCDCFEBAID6F4v5XQGqoa3N7woAAAAAAAAAAABQowhRAQCA+lcs+l0BqmFoSJYsv6sAAAAAAAAAAABADSJEBQAA6l+h4HcFqIa2NqbzAwAAAAAAAAAAwKwQogIAAPWP6fwWhqEhvysAAAAAAAAAAABAjSJEBQAA6t/YmN8VoBpaWpjODwAAAAAAAAAAALNCiAoAANS/1la/K0A1JJNM5wcAAAAAAAAAAIBZIUQFAADq3/Cw3xWgGpi2EQAAAAAAAAAAALNEiAoAANQ/RqJaGAoFpvMDAAAAAAAAAADArBCiAgAA9Y+RqBYGw1R+AAAAAAAAAAAAmB1CVAAAoP41N/tdAaohGvW7AgAAAAAAAAAAANQoQlQAAKD+pVJ+V4BqGBuTEaNRAQAAAAAAAAAAYOYIUQEAgPoXDvtdAaqhrc3vCgAAAAAAAAAAAFCjCFEBAACgPgwNyZLldxUAAAAAAAAAAACoQYSoAABA/cvl/K4A1dDWxnR+AAAAAAAAAAAAmBVCVAAAoP7F435XgGoYGvK7AgAAAAAAAAAAANQoQlQAAKD+jY76XQGqIZFgOj8AAAAAAAAAAADMCiEqAABQ/1pb/a4A1TA25ncFAAAAAAAAAAAAqFGzClHt2LFDy5cvVywW09q1a/Xkk0+esO29994ry7IqHrFYrKKNMUZbt27V0qVL1dDQoJ6eHr366quzKQ0AAGCq4WG/K0A1RKN+VwAAAAAAAAAAAIAaNeMQ1QMPPKDNmzdr27Ztevrpp7VmzRr19vbqyJEjJ1wnkUjo8OHD3uOtt96qeP2uu+7St771Ld19993as2ePGhsb1dvbq3Q6PfM9AgAAmIyRqBYGY2Rk/K4CAAAAAAAAAAAANWjGIapvfOMbuvnmm7Vp0yZdcMEFuvvuuxWPx3XPPfeccB3LstTZ2ek9Ojo6vNeMMfrmN7+pL37xi7ruuut08cUX63vf+54OHTqkhx56aNrtZTIZJZPJigcAAMAJMRLVwpDL+V0BAAAAAAAAAAAAatSMQlTZbFZ79+5VT09PaQOBgHp6erR79+4Trjc2Nqazzz5b3d3duu666/TCCy94r+3bt0/9/f0V22xpadHatWtPuM3t27erpaXFe3R3d89kNwAAwELT1OR3BaiGeFyWLL+rAAAAAAAAAAAAQA2aUYjq2LFjKhQKFSNJSVJHR4f6+/unXWfVqlW655579KMf/Uj/43/8DxWLRb3//e/XwYMHJclbbybb3LJli0ZGRrzHgQMHZrIbAABgoWGK4IVhdJTp/AAAAAAAAAAAADArobl+g3Xr1mndunXe8/e///36rd/6Lf3DP/yDvvrVr85qm9FoVNFo9HSVCAAA6l0wKBnCNXWvrU1Sxu8qAAAAAAAAAAAAUINmNBJVe3u7gsGgBgYGKpYPDAyos7PzlLYRDof127/923rttdckyVvv3WwTAADgpAIzuuRBrTp+nOn8AAAAAAAAAAAAMCsz6lGMRCK67LLL1NfX5y0rFovq6+urGG3qZAqFgn7zm99o6dKlkqQVK1aos7OzYpvJZFJ79uw55W0CAACcFNP5LQxtbUznBwAAAAAAAAAAgFmZ8XR+mzdv1k033aTLL79cV1xxhb75zW8qlUpp06ZNkqQbb7xRy5Yt0/bt2yVJf/VXf6X3ve99WrlypYaHh/X1r39db731lj75yU9KkizL0m233aa//uu/1nnnnacVK1boS1/6krq6urRhw4bTt6cAAGDham4mSLUQDA1JavS7CgAAAAAAAAAAANSgGYeoNm7cqKNHj2rr1q3q7+/XJZdcop07d6qjo0OStH//fgXKpswZGhrSzTffrP7+frW1temyyy7T448/rgsuuMBrc8cddyiVSumWW27R8PCwPvjBD2rnzp2KxWKnYRcBAMCCl0xKkYjfVWCuNTfLYiQqAAAAAAAAAAAAzIJljKn5nqZkMqmWlhaNjIwokUj4XQ4AAJhv+vqk8XG/q8BcCwb1oecbtP+4/W/95p3X+lwQAAAAAAAAAAAA/DSTTFHgpK8CAADUg+FhvytANYTDflcAAAAAAAAAAACAGkWICgAA1L/WVr8rQDVYlgzT+QEAAAAAAAAAAGAWCFEBAID6NzTkdwWohkzG7woAAAAAAAAAAABQowhRAQCA+tfY6HcFqIamJlmy/K4CAAAAAAAAAAAANYgQFQAAqH/ZrN8VoBqSSabzAwAAAAAAAAAAwKwQogIAAPXPYnSiBaGtze8KAAAAAAAAAAAAUKMIUQEAgPoXCvldAaphaIjp/AAAAAAAAAAAADArhKgAAED9m5jwuwJUAyNRAQAAAAAAAAAAYJYIUQEAgPqXSPhdAaphaMjvCgAAAAAAAAAAAFCjCFEBAID6NzLidwWohqYmvysAAAAAAAAAAABAjSJEBQAA6l9rq98VoBoyGb8rAAAAAAAAAAAAQI0iRAUAAOrf8LDfFaAaLMvvCgAAAAAAAAAAAFCjCFEBAID619LidwWohlBIRsbvKgAAAAAAAAAAAFCDCFEBAID6l0z6XQGqIZ32uwIAAAAAAAAAAADUKEJUAACg/jU0+F0BqqG5WZaY0g8AAAAAAAAAAAAzR4gKAADUv3ze7wpQDcPDTOcHAAAAAAAAAACAWSFEBQAA6p8hWLMgtLX5XQEAAAAAAAAAAABqFCEqAABQ/yIRvytANQwNMZ0fAAAAAAAAAAAAZoUQFQAAqH+plN8VoBpaW/2uAAAAAAAAAAAAADWKEBUAAKh/hGsWhuFhvysAAAAAAAAAAABAjSJEBQAA6h/hmoWhsdHvCgAAAAAAAAAAAFCjCFEBAID6x0hUC0Mu53cFAAAAAAAAAAAAqFGEqAAAQP1jJCoAAAAAAAAAAAAAJ0GICgAA1L9Ewu8KUA3hsIyM31UAAAAAAAAAAACgBs0qRLVjxw4tX75csVhMa9eu1ZNPPnnCtt/5znd05ZVXqq2tTW1tberp6ZnS/uMf/7gsy6p4rF+/fjalAQAATDU66ncFqIZUyu8KAAAAAAAAAAAAUKNmHKJ64IEHtHnzZm3btk1PP/201qxZo97eXh05cmTa9rt27dINN9ygRx55RLt371Z3d7euvvpqvf322xXt1q9fr8OHD3uP73//+7PbIwAAgMliMb8rQDW0tcmS5XcVAAAAAAAAAAAAqEEzDlF94xvf0M0336xNmzbpggsu0N133614PK577rln2vb/8i//oj/90z/VJZdcovPPP1//9E//pGKxqL6+vop20WhUnZ2d3qOtre2ENWQyGSWTyYoHAADACRWLfleAahga8rsCAAAAAAAAAAAA1KgZhaiy2az27t2rnp6e0gYCAfX09Gj37t2ntI3x8XHlcjktWrSoYvmuXbu0ZMkSrVq1SrfeeqsGBwdPuI3t27erpaXFe3R3d89kNwAAwEJTKPhdAarhJCF8AAAAAAAAAAAA4GRmFKI6duyYCoWCOjo6KpZ3dHSov7//lLbx+c9/Xl1dXRVBrPXr1+t73/ue+vr69LWvfU2PPvqorrnmGhVO0OG5ZcsWjYyMeI8DBw7MZDcAAMBCE436XQGqgZGoAAAAAAAAAAAAMEuhar7ZnXfeqfvvv1+7du1SLBbzll9//fXe96tXr9bFF1+sc889V7t27dJVV101ZTvRaFRROkMBAMCpGhuTyq49UKdaWiQxdSMAAAAAAAAAAABmbkYjUbW3tysYDGpgYKBi+cDAgDo7O0+67t/8zd/ozjvv1L//+7/r4osvPmnbc845R+3t7XrttddmUh4AAMD0Wlv9rgDVMDrqdwUAAAAAAAAAAACoUTMKUUUiEV122WXq6+vzlhWLRfX19WndunUnXO+uu+7SV7/6Ve3cuVOXX375O77PwYMHNTg4qKVLl86kPAAAgOkND/tdAaqB0cYAAAAAAAAAAAAwSzMKUUnS5s2b9Z3vfEf33XefXnrpJd16661KpVLatGmTJOnGG2/Uli1bvPZf+9rX9KUvfUn33HOPli9frv7+fvX392tsbEySNDY2pttvv11PPPGE3nzzTfX19em6667TypUr1dvbe5p2EwAALGiMRLUw5PN+VwAAAAAAAAAAAIAaFZrpChs3btTRo0e1detW9ff365JLLtHOnTvV0dEhSdq/f78CgVI26+///u+VzWb1h3/4hxXb2bZtm7785S8rGAzqueee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Fa8bY7R161YtXbpUDQ0N6unp0auvvlrR5vjx4/rYxz6mRCKh1tZWfeITn9DY2FhFm+eee05XXnmlYrGYuru7ddddd02p5cEHH9T555+vWCym1atX66c//elp318AQHW80/nl4x//+JS/Z9avX1/RhvMLAKDc9u3b9d73vlfNzc1asmSJNmzYoFdeeaWiTTU/D6PvBgDqw6mcX373d393yt8vn/rUpyracH7BQkeIClXxwAMPaPPmzdq2bZuefvpprVmzRr29vTpy5IjfpQEA5oELL7xQhw8f9h6/+MUvvNc++9nP6t/+7d/04IMP6tFHH9WhQ4f0kY98xHu9UCjo2muvVTab1eOPP6777rtP9957r7Zu3eq12bdvn6699lp9+MMf1rPPPqvbbrtNn/zkJ/Wzn/2sqvsJAJg7qVRKa9as0Y4dO6Z9/a677tK3vvUt3X333dqzZ48aGxvV29urdDrttfnYxz6mF154QQ8//LB+/OMf67HHHtMtt9zivZ5MJnX11Vfr7LPP1t69e/X1r39dX/7yl/WP//iPXpvHH39cN9xwgz7xiU/omWee0YYNG7RhwwY9//zzc7fzAIA5807nF0lav359xd8z3//+9yte5/wCACj36KOP6tOf/rSeeOIJPfzww8rlcrr66quVSqW8NtX6PIy+GwCoH6dyfpGkm2++ueLvl/IbODi/AJIMUAVXXHGF+fSnP+09LxQKpqury2zfvt3HqgAA88G2bdvMmjVrpn1teHjYhMNh8+CDD3rLXnrpJSPJ7N692xhjzE9/+lMTCARMf3+/1+bv//7vTSKRMJlMxhhjzB133GEuvPDCim1v3LjR9Pb2nua9AQDMB5LMD3/4Q+95sVg0nZ2d5utf/7q3bHh42ESjUfP973/fGGPMiy++aCSZX/3qV16b//N//o+xLMu8/fbbxhhjvv3tb5u2tjbv/GKMMZ///OfNqlWrvOcf/ehHzbXXXltRz9q1a82f/MmfnNZ9BABU3+TzizHG3HTTTea666474TqcXwAA7+TIkSNGknn00UeNMdX9PIy+GwCoX5PPL8YY8zu/8zvmz//8z0+4DucXwBhGosKcy2az2rt3r3p6erxlgUBAPT092r17t4+VAQDmi1dffVVdXV0655xz9LGPfUz79++XJO3du1e5XK7iHHL++efrrLPO8s4hu3fv1urVq9XR0eG16e3tVTKZ1AsvvOC1Kd+G24bzEAAsDPv27VN/f3/FuaClpUVr166tOJ+0trbq8ssv99r09PQoEAhoz549XpsPfehDikQiXpve3l698sorGhoa8tpwzgGAhWXXrl1asmSJVq1apVtvvVWDg4Pea5xfAADvZGRkRJK0aNEiSdX7PIy+GwCob5PPL65/+Zd/UXt7uy666CJt2bJF4+Pj3mucXwAp5HcBqH/Hjh1ToVCoONhKUkdHh15++WWfqgIAzBdr167Vvffeq1WrVunw4cP6yle+oiuvvFLPP/+8+vv7FYlE1NraWrFOR0eH+vv7JUn9/f3TnmPc107WJplMamJiQg0NDXO0dwCA+cA9H0x3Lig/VyxZsqTi9VAopEWLFlW0WbFixZRtuK+1tbWd8JzjbgMAUF/Wr1+vj3zkI1qxYoVef/11/eVf/qWuueYa7d69W8FgkPMLAOCkisWibrvtNn3gAx/QRRddJElV+zxsaGiIvhsAqFPTnV8k6b/8l/+is88+W11dXXruuef0+c9/Xq+88or+9V//VRLnF0AiRAUAAHx2zTXXeN9ffPHFWrt2rc4++2z94Ac/INwEAAAAYF67/vrrve9Xr16tiy++WOeee6527dqlq666ysfKAAC14NOf/rSef/55/eIXv/C7FABAHTnR+eWWW27xvl+9erWWLl2qq666Sq+//rrOPffcapcJzEtM54c5197ermAwqIGBgYrlAwMD6uzs9KkqAMB81draqve85z167bXX1NnZqWw2q+Hh4Yo25eeQzs7Oac8x7msna5NIJAhqAcAC4J4PTvY3SWdnp44cOVLxej6f1/Hjx0/LOYe/fQBgYTjnnHPU3t6u1157TRLnFwDAif3Zn/2ZfvzjH+uRRx7RmWee6S2v1udh9N0AQH060fllOmvXrpWkir9fOL9goSNEhTkXiUR02WWXqa+vz1tWLBbV19endevW+VgZAGA+Ghsb0+uvv66lS5fqsssuUzgcrjiHvPLKK9q/f793Dlm3bp1+85vfVHRMPPzww0okErrgggu8NuXbcNtwHgKAhWHFihXq7OysOBckk0nt2bOn4nwyPDysvXv3em1+/vOfq1gseh8orVu3To899phyuZzX5uGHH9aqVavU1tbmteGcAwAL18GDBzU4OKilS5dK4vwCAJjKGKM/+7M/0w9/+EP9/Oc/nzKla7U+D6PvBgDqyzudX6bz7LPPSlLF3y+cX7DgGaAK7r//fhONRs29995rXnzxRXPLLbeY1tZW09/f73dpAACffe5znzO7du0y+/btM7/85S9NT0+PaW9vN0eOHDHGGPOpT33KnHXWWebnP/+5eeqpp8y6devMunXrvPXz+by56KKLzNVXX22effZZs3PnTnPGGWeYLVu2eG3eeOMNE4/Hze23325eeukls2PHDhMMBs3OnTurvr8AgLkxOjpqnnnmGfPMM88YSeYb3/iGeeaZZ8xbb71ljDHmzjvvNK2treZHP/qRee6558x1111nVqxYYSYmJrxtrF+/3vz2b/+22bNnj/nFL35hzjvvPHPDDTd4rw8PD5uOjg7zx3/8x+b55583999/v4nH4+Yf/uEfvDa//OUvTSgUMn/zN39jXnrpJbNt2zYTDofNb37zm+r9MAAAp83Jzi+jo6PmL/7iL8zu3bvNvn37zP/9v//XXHrppea8884z6XTa2wbnFwBAuVtvvdW0tLSYXbt2mcOHD3uP8fFxr021Pg+j7wYA6sc7nV9ee+0181d/9VfmqaeeMvv27TM/+tGPzDnnnGM+9KEPedvg/AIYQ4gKVfPf//t/N2eddZaJRCLmiiuuME888YTfJQEA5oGNGzeapUuXmkgkYpYtW2Y2btxoXnvtNe/1iYkJ86d/+qemra3NxONx85/+038yhw8frtjGm2++aa655hrT0NBg2tvbzec+9zmTy+Uq2jzyyCPmkksuMZFIxJxzzjnmn//5n6uxewCAKnnkkUeMpCmPm266yRhjTLFYNF/60pdMR0eHiUaj5qqrrjKvvPJKxTYGBwfNDTfcYJqamkwikTCbNm0yo6OjFW1+/etfmw9+8IMmGo2aZcuWmTvvvHNKLT/4wQ/Me97zHhOJRMyFF15ofvKTn8zZfgMA5tbJzi/j4+Pm6quvNmeccYYJh8Pm7LPPNjfffPOUjgHOLwCActOdVyRVfFZVzc/D6LsBgPrwTueX/fv3mw996ENm0aJFJhqNmpUrV5rbb7/djIyMVGyH8wsWOssYY6o37hUAAAAAAAAAAAAAAAAAzC8BvwsAAAAAAAAAAAAAAAAAAD8RogIAAAAAAAAAAAAAAACwoBGiAgAAAAAAAAAAAAAAALCgEaICAAAAAAAAAAAAAAAAsKARogIAAAAAAAAAAAAAAACwoBGiAgAAAAAAAAAAAAAAALCgEaICAAAAAAAAAAAAAAAAsKARogIAAAAAAAAAAAAAAACwoBGiAgAAAAAAAAAAAAAAALCgEaICAAAAAAAAAAAAAAAAsKARogIAAAAAAAAAAAAAAACwoP3/ixKvrMcdqXoAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 3000x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(val[:, 3])\n",
    "plt.fill_between(np.arange(validation_labels.shape[0]), validation_labels, color='red', alpha=0.3, linestyle='dashed', linewidth=0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3139"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(validation_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6838"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(test_labels_clipped)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "test = np.load('../processed/WADI/test.npy')\n",
    "train = np.load('../processed/WADI/train.npy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(146883, 123)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(784571, 123)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fca8386aca0>]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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9fWZOnVqnnnmmbKan//85/nbv/3bDBkyJM3NzfnUpz61xV5uvPHGjBgxIkOGDMnIkSNzyy239M2hgX63adOmXHjhhRk+fHh22223vPKVr8zHP/7xFEVRqtF/gEq444478g//8A9pampKVVVVbrrpprL5nanX7MhegJeG7fWeDRs25Pzzz8/IkSPzile8Ik1NTTnttNPy+OOPl62h9wB/ief7u8+fet/73peqqqpcfvnlZeP6D7z4hLJ4Sbrhhhsya9asXHzxxVmyZEmOOeaYtLe3Z9WqVf29NWAndPvtt2f69On56U9/mo6OjmzYsCEnn3xy1q5dW6o555xz8v3vfz833nhjbr/99jz++ON561vfWprftGlTxo8fn/Xr1+fOO+/M1772tVxzzTW56KKLSjUPPvhgxo8fn5NOOilLly7NzJkz8573vCc//OEPSzX6F+y67r777nzxi1/Mq171qrJx/QfoC7/73e/ymte8JoMGDcoPfvCD/PKXv8xnPvOZ7LXXXqWaT33qU7niiisyd+7cLFq0KK94xSvS3t6e5557rlQzZcqU3Hfffeno6Mi8efNyxx13ZNq0aaX5np6enHzyyTnooIOyePHifPrTn85HP/rRfOlLXyrV3HnnnZk8eXKmTp2ae++9NxMmTMiECROybNmyF+eHAbyoLr300lx99dW58sors3z58lx66aX51Kc+lc9//vOlGv0HqIS1a9fmmGOOyVVXXbXV+Z2p1+zIXoCXhu31nmeffTZLlizJhRdemCVLluQ73/lOVqxYkTe96U1ldXoP8Jd4vr/7bPbd7343P/3pT9PU1LTFnP4D/aCAl6CxY8cW06dPL33etGlT0dTUVMyZM6cfdwW8VKxatapIUtx+++1FURTFmjVrikGDBhU33nhjqWb58uVFkqKzs7MoiqK45ZZbiurq6qKrq6tUc/XVVxe1tbXFunXriqIoig996EPFUUcdVfasU089tWhvby991r9g1/T0008Xhx12WNHR0VGceOKJxdlnn10Uhf4D9J3zzz+/eO1rX7vN+d7e3qKxsbH49Kc/XRpbs2ZNUVNTU3zzm98siqIofvnLXxZJirvvvrtU84Mf/KCoqqoqHnvssaIoiuILX/hCsddee5X60eZnH3744aXPb3/724vx48eXPb+lpaV473vf+9cdEtgpjR8/vnj3u99dNvbW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",
      "text/plain": [
       "<Figure size 3000x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['figure.figsize'] = 30, 2\n",
    "plt.plot(test[:, 7])\n",
    "#plt.fill_between(np.arange(validation_labels.shape[0]), validation_labels, color='red', alpha=0.3, linestyle='dashed', linewidth=0.3)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py3.9test",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "27efe6010b91a164a18a011cd71b7afbe2f076e5b83b7f8099f414d97e11e710"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
